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 - - - -
- - - - - - - - - - - - - - - -
- -
-
-

Code snippet

- -
- -
-
- -
-
-
- -
- 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(` +
+ + + + + + + + + + + + + + + +
+ +
+
+

Code snippet

+ +
+ +
+
+ +
+
+
+ +
+ 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_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": 500, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1714, + "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": 500, + "runtime_id": 8 + }, + { + "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_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": 501, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1711, + "cut_victims": [] + } + ], + "color": "Grey" + }, + { + "step_id": 502, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1712, + "current_goal_text": "c0 = X223^2", + "current_goal_predicate": "=", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Assign", + "X223 c0 c1 := c0" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 502, + "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_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": 503, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1713, + "cut_victims": [] + } + ], + "color": "Grey" + }, + { + "step_id": 504, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1709, + "current_goal_text": "std.map [c1] copy X224^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", + "X224^2 := [X225^2 | X226^2]" + ] + ] + }, + "siblings": [ + { + "goal_text": "copy c1 X225^2", + "goal_id": 1715 + }, + { + "goal_text": "std.map [] copy X226^2", + "goal_id": 1716 + } + ], + "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": 504, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | 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": 505, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1715, + "current_goal_text": "copy c1 X225^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 := X225^2" + ] + ] + }, + "siblings": [ + { + "goal_text": "name c1", + "goal_id": 1717 + }, + { + "goal_text": "!", + "goal_id": 1718 + }, + { + "goal_text": "c1 = X225^2", + "goal_id": 1719 + }, + { + "goal_text": "!", + "goal_id": 1720 + } + ], + "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": 505, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 504, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | 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": 506, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1717, + "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": 1721 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "name", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 506, + "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": 505, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 504, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | 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": 507, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1721, + "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": 507, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "name", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 506, + "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": 505, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 504, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | 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": 508, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1718, + "cut_victims": [] + } + ], + "color": "Grey" + }, + { + "step_id": 509, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1719, + "current_goal_text": "c1 = X225^2", + "current_goal_predicate": "=", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Assign", + "X225 c0 c1 := c1" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 509, + "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": 505, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 504, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | 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": 510, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1720, + "cut_victims": [] + } + ], + "color": "Grey" + }, + { + "step_id": 511, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1716, + "current_goal_text": "std.map [] copy X226^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", + "X226^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": 511, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 504, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | 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": 512, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1679, + "current_goal_text": "std.map [] (copy-pack-holes c0) X210^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", + "X210^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": 512, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | 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": 513, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1613, + "current_goal_text": "std.spy\n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", + "current_goal_predicate": "std.spy", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := std.take 0 \n [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": "trace.counter run X227^2", + "goal_id": 1722 + }, + { + "goal_text": "if (not (X227^2 = 0)) (std.debug-print run= X227^2) true", + "goal_id": 1723 + }, + { + "goal_text": "std.debug-print ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", + "goal_id": 1724 + }, + { + "goal_text": "std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] X175^1", + "goal_id": 1725 + }, + { + "goal_text": "std.debug-print ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", + "goal_id": 1726 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 513, + "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": 514, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1722, + "current_goal_text": "trace.counter run X227^2", + "current_goal_predicate": "trace.counter", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "trace.counter", + "kind": "FFI", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "X227^2 = 0", + "goal_id": 1727 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "trace.counter", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 514, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 513, + "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": 515, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1727, + "current_goal_text": "X227^2 = 0", + "current_goal_predicate": "=", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Assign", + "X227^2 := 0" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 515, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "trace.counter", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 514, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 513, + "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": 516, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1723, + "current_goal_text": "if (not (0 = 0)) (std.debug-print run= 0) 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 (0 = 0)" + ], + [ + "Assign", + "A1 := std.debug-print run= 0" + ] + ] + }, + "siblings": [ + { + "goal_text": "not (0 = 0)", + "goal_id": 1728 + }, + { + "goal_text": "!", + "goal_id": 1729 + }, + { + "goal_text": "std.debug-print run= 0", + "goal_id": 1730 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 521 + ], + "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": 516, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 513, + "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": 517, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1728, + "current_goal_text": "not (0 = 0)", + "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 := 0 = 0" + ] + ] + }, + "siblings": [ + { + "goal_text": "0 = 0", + "goal_id": 1731 + }, + { + "goal_text": "!", + "goal_id": 1732 + }, + { + "goal_text": "fail", + "goal_id": 1733 + } + ], + "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": 517, + "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": 516, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 513, + "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": "YellowRed" + }, + { + "step_id": 518, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1731, + "current_goal_text": "0 = 0", + "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": 518, + "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": 517, + "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": 516, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 513, + "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": 519, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1732, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "not (0 = 0)", + "goal_id": 1728 + }, + "cut_branch": { + "rule_text": "(not _) :- .", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 54, + "column": 0, + "character": 631 + } + ] + } + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 520, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1733, + "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": 517, + "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": 516, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 513, + "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": 521, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1723, + "current_goal_text": "if (not (0 = 0)) (std.debug-print run= 0) 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": 1734 + } + ], + "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": 521, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 513, + "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": 522, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1734, + "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": 522, + "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": 521, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 513, + "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": 523, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1724, + "current_goal_text": "std.debug-print ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", + "current_goal_predicate": "std.debug-print", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_loc": [ + "File", + { + "filename": "/build/source/./elpi/coq-lib.elpi", + "line": 17, + "column": 0, + "character": 660 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := ----<<---- enter: " + ], + [ + "Assign", + "A1 := std.take 0 \n [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": "!", + "goal_id": 1735 + }, + { + "goal_text": "coq.say ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", + "goal_id": 1736 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_loc": [ + "File", + { + "filename": "/build/source/./elpi/coq-lib.elpi", + "line": 17, + "column": 0, + "character": 660 + } + ] + } + ], + "step_id": 523, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 513, + "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": 524, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1735, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "std.debug-print ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", + "goal_id": 1724 + }, + "cut_branch": { + "rule_text": "(std.debug-print A0 A1) :- (print A0 A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 24, + "column": 0, + "character": 874 + } + ] + } + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 525, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1736, + "current_goal_text": "coq.say ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", + "current_goal_predicate": "coq.say", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "coq.say", + "kind": "FFI", + "payload": [] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "coq.say", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 525, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_loc": [ + "File", + { + "filename": "/build/source/./elpi/coq-lib.elpi", + "line": 17, + "column": 0, + "character": 660 + } + ] + } + ], + "step_id": 523, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 513, + "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": 526, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1725, + "current_goal_text": "std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] X175^1", + "current_goal_predicate": "std.take", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(std.take 0 _ []) :- (!).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 88, + "column": 0, + "character": 2914 + } + ] + } + ], + "events": [ + [ + "Assign", + "X175^1 := []" + ] + ] + }, + "siblings": [ + { + "goal_text": "!", + "goal_id": 1737 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(std.take 0 _ []) :- (!).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 88, + "column": 0, + "character": 2914 + } + ] + } + ], + "step_id": 526, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 513, + "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": 527, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1737, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] X175^1", + "goal_id": 1725 + }, + "cut_branch": { + "rule_text": "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 89, + "column": 0, + "character": 2932 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] X175^1", + "goal_id": 1725 + }, + "cut_branch": { + "rule_text": "(std.take _ _ _) :- (std.fatal-error take run out of list items).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 90, + "column": 0, + "character": 2985 + } + ] + } + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 528, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1726, + "current_goal_text": "std.debug-print ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] [])", + "current_goal_predicate": "std.debug-print", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_loc": [ + "File", + { + "filename": "/build/source/./elpi/coq-lib.elpi", + "line": 17, + "column": 0, + "character": 660 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := ---->>---- exit: " + ], + [ + "Assign", + "A1 := std.take 0 \n [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 []" + ] + ] + }, + "siblings": [ + { + "goal_text": "!", + "goal_id": 1738 + }, + { + "goal_text": "coq.say ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] [])", + "goal_id": 1739 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_loc": [ + "File", + { + "filename": "/build/source/./elpi/coq-lib.elpi", + "line": 17, + "column": 0, + "character": 660 + } + ] + } + ], + "step_id": 528, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 513, + "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": 529, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1738, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "std.debug-print ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", + "goal_id": 1726 + }, + "cut_branch": { + "rule_text": "(std.debug-print A0 A1) :- (print A0 A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 24, + "column": 0, + "character": 874 + } + ] + } + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 530, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1739, + "current_goal_text": "coq.say ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] [])", + "current_goal_predicate": "coq.say", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "coq.say", + "kind": "FFI", + "payload": [] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "coq.say", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 530, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_loc": [ + "File", + { + "filename": "/build/source/./elpi/coq-lib.elpi", + "line": 17, + "column": 0, + "character": 660 + } + ] + } + ], + "step_id": 528, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 513, + "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": 531, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1603, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "std.spy (std.take X182^2 X183^2 X175^1)", + "goal_id": 1613 + }, + "cut_branch": { + "rule_text": "(std.spy A0) :- (std.debug-print ---->>---- fail: A0), fail.", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 49, + "column": 0, + "character": 1863 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "factory-nparams X181^2 X182^2", + "goal_id": 1611 + }, + "cut_branch": { + "rule_text": "(factory-nparams (indt «SelfA.axioms_») 0) :- .", + "rule_loc": [ + "File", + { + "filename": "(elpi.add_clause)", + "line": 1, + "column": 0, + "character": 0 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "factory-nparams X181^2 X182^2", + "goal_id": 1611 + }, + "cut_branch": { + "rule_text": "(factory-nparams (indt «IsSelfA'.axioms_») 0) :- .", + "rule_loc": [ + "File", + { + "filename": "(elpi.add_clause)", + "line": 1, + "column": 0, + "character": 0 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1 ;\n std.fatal-error-w-data\n The conclusion of a builder is a mixin whose parameters depend on other mixins \n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1)", + "goal_id": 1602 + }, + "cut_branch": { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 30, + "column": 0, + "character": 311 + } + ] + } + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 532, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1600, + "cut_victims": [] + } + ], + "color": "Grey" + }, + { + "step_id": 533, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1601, + "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": 533, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_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": 534, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1578, + "current_goal_text": "std.map2\n [global (const «Builders_18.HB_unnamed_factory_22»), \n global (const «Builders_18.HB_unnamed_factory_20»)] \n [indt «HasB.axioms_», indt «HasA.axioms_»] (factory-provides.one [] c0) \n X174^1", + "current_goal_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_22»)" + ], + [ + "Assign", + "A1 := [global (const «Builders_18.HB_unnamed_factory_20»)]" + ], + [ + "Assign", + "A2 := indt «HasB.axioms_»" + ], + [ + "Assign", + "A3 := [indt «HasA.axioms_»]" + ], + [ + "Assign", + "A4 := factory-provides.one [] c0" + ], + [ + "Assign", + "X174^1 := [X228^1 | X229^1]" + ] + ] + }, + "siblings": [ + { + "goal_text": "factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_22»)) \n (indt «HasB.axioms_») X228^1", + "goal_id": 1740 + }, + { + "goal_text": "std.map2 [global (const «Builders_18.HB_unnamed_factory_20»)] \n [indt «HasA.axioms_»] (factory-provides.one [] c0) X229^1", + "goal_id": 1741 + } + ], + "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": 534, + "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": "YellowRed" + }, + { + "step_id": 535, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1740, + "current_goal_text": "factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_22»)) \n (indt «HasB.axioms_») X228^1", + "current_goal_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_22»)" + ], + [ + "Assign", + "A3 := indt «HasB.axioms_»" + ], + [ + "Assign", + "X228^1 := triple (indt «HasB.axioms_») X230^1 c0" + ] + ] + }, + "siblings": [ + { + "goal_text": "std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) \n X231^1) Builder illtyped, \n (coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "goal_id": 1742 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "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": 535, + "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": 534, + "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": "YellowRed" + }, + { + "step_id": 536, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1742, + "current_goal_text": "std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) \n X231^1) Builder illtyped, \n (coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "current_goal_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_22»)) \n X231^1) Builder illtyped" + ], + [ + "Assign", + "A1 := [(coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]" + ] + ] + }, + "siblings": [ + { + "goal_text": "std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1) \n Builder illtyped", + "goal_id": 1743 + }, + { + "goal_text": "!", + "goal_id": 1744 + }, + { + "goal_text": "std.do!\n [(coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "goal_id": 1745 + } + ], + "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": 536, + "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": 535, + "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": 534, + "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": "YellowRed" + }, + { + "step_id": 537, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1743, + "current_goal_text": "std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1) \n Builder illtyped", + "current_goal_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_22»)) \n X231^1" + ], + [ + "Assign", + "A1 := Builder illtyped" + ] + ] + }, + "siblings": [ + { + "goal_text": "coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1 \n X234^1", + "goal_id": 1746 + }, + { + "goal_text": "!", + "goal_id": 1747 + }, + { + "goal_text": "X234^1 = ok ;\n X234^1 = error X235^1 , std.fatal-error-w-data Builder illtyped X235^1", + "goal_id": 1748 + }, + { + "goal_text": "!", + "goal_id": 1749 + } + ], + "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": 537, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 538, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1746, + "current_goal_text": "coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1 \n X234^1", + "current_goal_predicate": "coq.typecheck", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "coq.typecheck", + "kind": "FFI", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "X231^1 =\n prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]", + "goal_id": 1750 + }, + { + "goal_text": "X234^1 = ok", + "goal_id": 1751 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "coq.typecheck", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 538, + "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": 537, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 539, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1750, + "current_goal_text": "X231^1 =\n prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]", + "current_goal_predicate": "=", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Assign", + "X231^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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 539, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "coq.typecheck", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 538, + "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": 537, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 540, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1751, + "current_goal_text": "X234^1 = ok", + "current_goal_predicate": "=", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Assign", + "X234^1 := ok" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 540, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "coq.typecheck", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 538, + "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": 537, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 541, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1747, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1) \n Builder illtyped", + "goal_id": 1743 + }, + "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": 542, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1748, + "current_goal_text": "ok = ok ; ok = error X235^1 , std.fatal-error-w-data Builder illtyped X235^1", + "current_goal_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": 1752 + } + ], + "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": 542, + "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": 537, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 543, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1752, + "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": 543, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 542, + "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": 537, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 544, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1749, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "X234^1 = ok ;\n X234^1 = error X235^1 , std.fatal-error-w-data Builder illtyped X235^1", + "goal_id": 1748 + }, + "cut_branch": { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 30, + "column": 0, + "character": 311 + } + ] + } + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 545, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1744, + "cut_victims": [] + } + ], + "color": "Grey" + }, + { + "step_id": 546, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1745, + "current_goal_text": "std.do!\n [(coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c1]) c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "current_goal_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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1" + ], + [ + "Assign", + "A1 := [std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]" + ] + ] + }, + "siblings": [ + { + "goal_text": "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1", + "goal_id": 1753 + }, + { + "goal_text": "!", + "goal_id": 1754 + }, + { + "goal_text": "std.do!\n [std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "goal_id": 1755 + } + ], + "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": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": "YellowRed" + }, + { + "step_id": 547, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1753, + "current_goal_text": "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1", + "current_goal_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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1", + "goal_id": 1756 + }, + { + "goal_text": "coq.subst-prod [c0] X232^1 X233^1", + "goal_id": 1757 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "and", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 547, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 548, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1756, + "current_goal_text": "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1", + "current_goal_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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]" + ], + [ + "Assign", + "X232^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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]" + ] + ] + }, + "siblings": [ + { + "goal_text": "!", + "goal_id": 1758 + } + ], + "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": 548, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "and", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 547, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 549, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1758, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1", + "goal_id": 1756 + }, + "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": 550, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1757, + "current_goal_text": "coq.subst-prod [c0] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X233^1", + "current_goal_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 «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]" + ], + [ + "Assign", + "A3 := X233^1" + ] + ] + }, + "siblings": [ + { + "goal_text": "!", + "goal_id": 1759 + }, + { + "goal_text": "coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X233^1", + "goal_id": 1760 + } + ], + "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": 550, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "and", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 547, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 551, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1759, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "coq.subst-prod [c0] X232^1 X233^1", + "goal_id": 1757 + }, + "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] X232^1 X233^1", + "goal_id": 1757 + }, + "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": 552, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1760, + "current_goal_text": "coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X233^1", + "current_goal_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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]" + ], + [ + "Assign", + "X233^1 := prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]" + ] + ] + }, + "siblings": [ + { + "goal_text": "!", + "goal_id": 1761 + } + ], + "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": 552, + "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": 550, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "and", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 547, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 553, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1761, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X233^1", + "goal_id": 1760 + }, + "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": 554, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1754, + "cut_victims": [] + } + ], + "color": "Grey" + }, + { + "step_id": 555, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1755, + "current_goal_text": "std.do!\n [std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "current_goal_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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins" + ], + [ + "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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins", + "goal_id": 1762 + }, + { + "goal_text": "!", + "goal_id": 1763 + }, + { + "goal_text": "std.do! []", + "goal_id": 1764 + } + ], + "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": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": "YellowRed" + }, + { + "step_id": 556, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1762, + "current_goal_text": "std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins", + "current_goal_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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^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 «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1 ;\n std.fatal-error-w-data\n The conclusion of a builder is a mixin whose parameters depend on other mixins \n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1)", + "goal_id": 1765 + }, + { + "goal_text": "!", + "goal_id": 1766 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": "YellowRed" + }, + { + "step_id": 557, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1765, + "current_goal_text": "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1 ;\n std.fatal-error-w-data\n The conclusion of a builder is a mixin whose parameters depend on other mixins \n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1)", + "current_goal_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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^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 «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "goal_id": 1767 + } + ], + "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": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": "YellowRed" + }, + { + "step_id": 558, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1767, + "current_goal_text": "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "current_goal_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 «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]" + ], + [ + "Assign", + "A3 := X230^1" + ] + ] + }, + "siblings": [ + { + "goal_text": "!", + "goal_id": 1768 + }, + { + "goal_text": "pi c1 \\\n decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "goal_id": 1769 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": "YellowRed" + }, + { + "step_id": 559, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1768, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "goal_id": 1767 + }, + "cut_branch": { + "rule_text": "(extract-conclusion-params A0 (app [global A1 | A2]) A3) :- (!), \n (factory-alias->gref A1 A4), (factory-nparams A4 A5), \n (std.map A2 (copy-pack-holes A0) A6), (std.spy (std.take A5 A6 A3)).", + "rule_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 «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "goal_id": 1767 + }, + "cut_branch": { + "rule_text": "(extract-conclusion-params A0 A1 A2) :- (whd1 A1 A3), (!), \n (extract-conclusion-params A0 A3 A2).", + "rule_loc": [ + "File", + { + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "line": 122, + "column": 0, + "character": 4303 + } + ] + } + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 560, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1769, + "current_goal_text": "pi c1 \\\n decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "current_goal_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 «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "goal_id": 1770 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": "YellowRed" + }, + { + "step_id": 561, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1770, + "current_goal_text": "decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "current_goal_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 «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "goal_id": 1771 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": "YellowRed" + }, + { + "step_id": 562, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1771, + "current_goal_text": "extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "current_goal_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 «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] with 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 «HasB.axioms_»" + ], + [ + "Assign", + "A2 := [app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]" + ], + [ + "Assign", + "A3 := X230^1" + ] + ] + }, + "siblings": [ + { + "goal_text": "!", + "goal_id": 1772 + }, + { + "goal_text": "factory-alias->gref (indt «HasB.axioms_») X236^2", + "goal_id": 1773 + }, + { + "goal_text": "factory-nparams X236^2 X237^2", + "goal_id": 1774 + }, + { + "goal_text": "std.map\n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] (copy-pack-holes c0) X238^2", + "goal_id": 1775 + }, + { + "goal_text": "std.spy (std.take X237^2 X238^2 X230^1)", + "goal_id": 1776 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": "YellowRed" + }, + { + "step_id": 563, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1772, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "goal_id": 1771 + }, + "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": 564, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1773, + "current_goal_text": "factory-alias->gref (indt «HasB.axioms_») X236^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 «HasB.axioms_»" + ], + [ + "Assign", + "A1 := X236^2" + ] + ] + }, + "siblings": [ + { + "goal_text": "phant-abbrev X236^2 (indt «HasB.axioms_») _", + "goal_id": 1777 + }, + { + "goal_text": "!", + "goal_id": 1778 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 566 + ], + "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": 564, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 565, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1777, + "current_goal_text": "phant-abbrev X236^2 (indt «HasB.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", + "X236^2 := indt «HasA.axioms_»" + ], + [ + "Fail", + "unify indt «HasB.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", + "X236^2 := indc «HasA.Axioms_»" + ], + [ + "Fail", + "unify indt «HasB.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", + "X236^2 := indt «HasB.axioms_»" + ], + [ + "Fail", + "unify indt «HasB.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", + "X236^2 := indc «HasB.Axioms_»" + ], + [ + "Fail", + "unify indt «HasB.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", + "X236^2 := indt «IsSelfA.axioms_»" + ], + [ + "Fail", + "unify indt «HasB.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", + "X236^2 := indc «IsSelfA.Axioms_»" + ], + [ + "Fail", + "unify indt «HasB.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", + "X236^2 := indt «IsSelfA'.axioms_»" + ], + [ + "Fail", + "unify indt «HasB.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", + "X236^2 := indc «IsSelfA'.Axioms_»" + ], + [ + "Fail", + "unify indt «HasB.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": 565, + "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": 564, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 566, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1773, + "current_goal_text": "factory-alias->gref (indt «HasB.axioms_») X236^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 «HasB.axioms_»" + ], + [ + "Assign", + "X236^2 := indt «HasB.axioms_»" + ] + ] + }, + "siblings": [ + { + "goal_text": "phant-abbrev (indt «HasB.axioms_») _ _", + "goal_id": 1779 + }, + { + "goal_text": "!", + "goal_id": 1780 + } + ], + "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": 566, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 567, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1779, + "current_goal_text": "phant-abbrev (indt «HasB.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 «HasB.axioms_» with indt «HasA.axioms_»" + ] + ] + } + ], + "successful_attempts": [ + { + "attempt": { + "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": [] + }, + "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": 567, + "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": 566, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 568, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1780, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "phant-abbrev (indt «HasB.axioms_») _ _", + "goal_id": 1779 + }, + "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": "phant-abbrev (indt «HasB.axioms_») _ _", + "goal_id": 1779 + }, + "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 «HasB.axioms_») X236^2", + "goal_id": 1773 + }, + "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 «HasB.axioms_») X236^2", + "goal_id": 1773 + }, + "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 «HasB.axioms_») X236^2", + "goal_id": 1773 + }, + "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": 569, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1774, + "current_goal_text": "factory-nparams (indt «HasB.axioms_») X237^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 «HasB.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 «HasB.axioms_» with indt «A.axioms_»" + ] + ] + } + ], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(factory-nparams (indt «HasB.axioms_») 1) :- .", + "rule_loc": [ + "File", + { + "filename": "(elpi.add_clause)", + "line": 1, + "column": 0, + "character": 0 + } + ] + } + ], + "events": [ + [ + "Assign", + "X237^2 := 1" + ] + ] + }, + "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": 569, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 570, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1775, + "current_goal_text": "std.map\n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] (copy-pack-holes c0) X238^2", + "current_goal_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\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]" + ], + [ + "Assign", + "A1 := [c0]" + ], + [ + "Assign", + "A2 := copy-pack-holes c0" + ], + [ + "Assign", + "X238^2 := [X239^2 | X240^2]" + ] + ] + }, + "siblings": [ + { + "goal_text": "copy-pack-holes c0 \n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", + "goal_id": 1781 + }, + { + "goal_text": "std.map [c0] (copy-pack-holes c0) X240^2", + "goal_id": 1782 + } + ], + "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": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 571, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1781, + "current_goal_text": "copy-pack-holes c0 \n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", + "current_goal_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\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]" + ], + [ + "Assign", + "A2 := X239^2" + ] + ] + }, + "siblings": [ + { + "goal_text": "findall-local-canonical X241^2", + "goal_id": 1783 + }, + { + "goal_text": "coq.copy-clauses-for-unfold X241^2 X242^2", + "goal_id": 1784 + }, + { + "goal_text": "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X243^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X243^2 | c6] c3) | X242^2]\n =>\n copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", + "goal_id": 1785 + } + ], + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 572, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1783, + "current_goal_text": "findall-local-canonical X241^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 := X241^2" + ] + ] + }, + "siblings": [ + { + "goal_text": "std.findall (local-canonical X244^2) X245^2", + "goal_id": 1786 + }, + { + "goal_text": "std.map X245^2 local-canonical-gref X241^2", + "goal_id": 1787 + } + ], + "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": 572, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 573, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1786, + "current_goal_text": "std.findall (local-canonical X244^2) X245^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 X244^2" + ], + [ + "Assign", + "A1 := X245^2" + ] + ] + }, + "siblings": [ + { + "goal_text": "findall_solutions (local-canonical X244^2) X245^2", + "goal_id": 1788 + } + ], + "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": 573, + "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": 572, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 574, + "runtime_id": 8, + "step": [ + "Findall", + { + "findall_goal_id": 1788, + "findall_goal_text": "findall_solutions (local-canonical X244^2) X245^2", + "findall_cards": [ + { + "step_id": 0, + "runtime_id": 14, + "step": [ + "Init", + { + "goal_text": "local-canonical X0^2", + "goal_id": 1790 + } + ], + "color": "Grey" + }, + { + "step_id": 1, + "runtime_id": 14, + "step": [ + "Inference", + { + "current_goal_id": 1790, + "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": [ + "X245^2 := []" + ], + "findall_stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "findall", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 574, + "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": 573, + "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": 572, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 575, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1787, + "current_goal_text": "std.map [] local-canonical-gref X241^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", + "X241^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": 575, + "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": 572, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 576, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1784, + "current_goal_text": "coq.copy-clauses-for-unfold [] X242^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", + "X242^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": 576, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 577, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1785, + "current_goal_text": "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X243^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X243^2 | c6] c3)] =>\n copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", + "current_goal_predicate": "=>", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", + "goal_id": 1791 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 578, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1791, + "current_goal_text": "copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", + "current_goal_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 X243^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X243^2 | A4] A1).", + "rule_loc": [ + "Context", + 577 + ] + } + ], + "events": [ + [ + "Assign", + "A5 := const «Builders_18.Builders_18_T__canonical__interleave_context_A»" + ], + [ + "Assign", + "A0 := [c0, c1]" + ], + [ + "Assign", + "X239^2 := app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A») | X246^2]" + ] + ] + }, + "siblings": [ + { + "goal_text": "pack? (const «Builders_18.Builders_18_T__canonical__interleave_context_A») \n _", + "goal_id": 1792 + }, + { + "goal_text": "!", + "goal_id": 1793 + }, + { + "goal_text": "std.rev [c0, c1] [X247^2, c0 | X248^2]", + "goal_id": 1794 + }, + { + "goal_text": "copy c0 X243^2", + "goal_id": 1795 + }, + { + "goal_text": "std.map X248^2 copy X249^2", + "goal_id": 1796 + }, + { + "goal_text": "std.rev [global (const «elpi.hole»), X243^2 | X249^2] X246^2", + "goal_id": 1797 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 580, + 582 + ], + "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 X243^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X243^2 | A4] A1).", + "rule_loc": [ + "Context", + 577 + ] + } + ], + "step_id": 578, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 579, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1792, + "current_goal_text": "pack? (const «Builders_18.Builders_18_T__canonical__interleave_context_A») \n _", + "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 X243^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X243^2 | A4] A1).", + "rule_loc": [ + "Context", + 577 + ] + } + ], + "step_id": 578, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 580, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1791, + "current_goal_text": "copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", + "current_goal_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\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]" + ], + [ + "Assign", + "A1 := X239^2" + ] + ] + }, + "siblings": [ + { + "goal_text": "name\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1])", + "goal_id": 1798 + }, + { + "goal_text": "!", + "goal_id": 1799 + }, + { + "goal_text": "app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1] = X239^2", + "goal_id": 1800 + }, + { + "goal_text": "!", + "goal_id": 1801 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 582 + ], + "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": 580, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 581, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1798, + "current_goal_text": "name\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1])", + "current_goal_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": 581, + "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": 580, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 582, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1791, + "current_goal_text": "copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", + "current_goal_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\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]" + ], + [ + "Assign", + "X239^2 := app X250^2" + ] + ] + }, + "siblings": [ + { + "goal_text": "!", + "goal_id": 1802 + }, + { + "goal_text": "std.map\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1] copy X250^2", + "goal_id": 1803 + } + ], + "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": 582, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 583, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1802, + "cut_victims": [] + } + ], + "color": "Grey" + }, + { + "step_id": 584, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1803, + "current_goal_text": "std.map\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1] copy X250^2", + "current_goal_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\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)" + ], + [ + "Assign", + "A1 := [c0, c1]" + ], + [ + "Assign", + "A2 := copy" + ], + [ + "Assign", + "X250^2 := [X251^2 | X252^2]" + ] + ] + }, + "siblings": [ + { + "goal_text": "copy\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)) \n X251^2", + "goal_id": 1804 + }, + { + "goal_text": "std.map [c0, c1] copy X252^2", + "goal_id": 1805 + } + ], + "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": 584, + "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": 582, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 585, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1804, + "current_goal_text": "copy\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)) \n X251^2", + "current_goal_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\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)" + ], + [ + "Assign", + "A1 := X251^2" + ] + ] + }, + "siblings": [ + { + "goal_text": "name\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»))", + "goal_id": 1806 + }, + { + "goal_text": "!", + "goal_id": 1807 + }, + { + "goal_text": "global (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)\n = X251^2", + "goal_id": 1808 + }, + { + "goal_text": "!", + "goal_id": 1809 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 587 + ], + "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": 585, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 584, + "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": 582, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 586, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1806, + "current_goal_text": "name\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»))", + "current_goal_predicate": "name", + "failed_attempts": [ + { + "rule": [ + "BuiltinRule", + { + "name": "name", + "kind": "FFI", + "payload": [] + } + ], + "events": [] + } + ], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "name", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 586, + "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": 585, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 584, + "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": 582, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 587, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1804, + "current_goal_text": "copy\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)) \n X251^2", + "current_goal_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\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)" + ], + [ + "Assign", + "X251^2 := global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»)" + ] + ] + }, + "siblings": [ + { + "goal_text": "!", + "goal_id": 1810 + } + ], + "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": 587, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 584, + "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": 582, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 588, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1810, + "cut_victims": [] + } + ], + "color": "Grey" + }, + { + "step_id": 589, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1805, + "current_goal_text": "std.map [c0, c1] copy X252^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", + "X252^2 := [X253^2 | X254^2]" + ] + ] + }, + "siblings": [ + { + "goal_text": "copy c0 X253^2", + "goal_id": 1811 + }, + { + "goal_text": "std.map [c1] copy X254^2", + "goal_id": 1812 + } + ], + "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": 589, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 584, + "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": 582, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 590, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1811, + "current_goal_text": "copy c0 X253^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 := X253^2" + ] + ] + }, + "siblings": [ + { + "goal_text": "name c0", + "goal_id": 1813 + }, + { + "goal_text": "!", + "goal_id": 1814 + }, + { + "goal_text": "c0 = X253^2", + "goal_id": 1815 + }, + { + "goal_text": "!", + "goal_id": 1816 + } + ], + "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": 590, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 589, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 584, + "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": 582, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 591, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1813, + "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": 1817 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "name", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 591, + "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": 590, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 589, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 584, + "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": 582, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 592, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1817, + "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": 592, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "name", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 591, + "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": 590, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 589, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 584, + "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": 582, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 593, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1814, + "cut_victims": [] + } + ], + "color": "Grey" + }, + { + "step_id": 594, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1815, + "current_goal_text": "c0 = X253^2", + "current_goal_predicate": "=", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Assign", + "X253 c0 c1 := c0" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 594, + "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": 590, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 589, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 584, + "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": 582, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 595, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1816, + "cut_victims": [] + } + ], + "color": "Grey" + }, + { + "step_id": 596, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1812, + "current_goal_text": "std.map [c1] copy X254^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", + "X254^2 := [X255^2 | X256^2]" + ] + ] + }, + "siblings": [ + { + "goal_text": "copy c1 X255^2", + "goal_id": 1818 + }, + { + "goal_text": "std.map [] copy X256^2", + "goal_id": 1819 + } + ], + "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": 596, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 589, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 584, + "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": 582, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 597, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1818, + "current_goal_text": "copy c1 X255^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 := X255^2" + ] + ] + }, + "siblings": [ + { + "goal_text": "name c1", + "goal_id": 1820 + }, + { + "goal_text": "!", + "goal_id": 1821 + }, + { + "goal_text": "c1 = X255^2", + "goal_id": 1822 + }, + { + "goal_text": "!", + "goal_id": 1823 + } + ], + "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": 597, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 596, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 589, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 584, + "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": 582, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 598, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1820, + "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": 1824 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "name", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 598, + "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": 597, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 596, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 589, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 584, + "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": 582, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 599, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1824, + "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": 599, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "name", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 598, + "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": 597, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 596, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 589, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 584, + "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": 582, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 600, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1821, + "cut_victims": [] + } + ], + "color": "Grey" + }, + { + "step_id": 601, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1822, + "current_goal_text": "c1 = X255^2", + "current_goal_predicate": "=", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Assign", + "X255 c0 c1 := c1" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 601, + "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": 597, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 596, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 589, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 584, + "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": 582, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 602, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1823, + "cut_victims": [] + } + ], + "color": "Grey" + }, + { + "step_id": 603, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1819, + "current_goal_text": "std.map [] copy X256^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", + "X256^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": 603, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 596, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 589, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 584, + "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": 582, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 577, + "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": 571, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 604, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1782, + "current_goal_text": "std.map [c0] (copy-pack-holes c0) X240^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 := []" + ], + [ + "Assign", + "A2 := copy-pack-holes c0" + ], + [ + "Assign", + "X240^2 := [X257^2 | X258^2]" + ] + ] + }, + "siblings": [ + { + "goal_text": "copy-pack-holes c0 c0 X257^2", + "goal_id": 1825 + }, + { + "goal_text": "std.map [] (copy-pack-holes c0) X258^2", + "goal_id": 1826 + } + ], + "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": 604, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 605, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1825, + "current_goal_text": "copy-pack-holes c0 c0 X257^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 := X257^2" + ] + ] + }, + "siblings": [ + { + "goal_text": "findall-local-canonical X259^2", + "goal_id": 1827 + }, + { + "goal_text": "coq.copy-clauses-for-unfold X259^2 X260^2", + "goal_id": 1828 + }, + { + "goal_text": "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X261^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X261^2 | c6] c3) | X260^2]\n => copy c0 X257^2", + "goal_id": 1829 + } + ], + "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": 605, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 604, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 606, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1827, + "current_goal_text": "findall-local-canonical X259^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 := X259^2" + ] + ] + }, + "siblings": [ + { + "goal_text": "std.findall (local-canonical X262^2) X263^2", + "goal_id": 1830 + }, + { + "goal_text": "std.map X263^2 local-canonical-gref X259^2", + "goal_id": 1831 + } + ], + "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": 606, + "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": 605, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 604, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 607, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1830, + "current_goal_text": "std.findall (local-canonical X262^2) X263^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 X262^2" + ], + [ + "Assign", + "A1 := X263^2" + ] + ] + }, + "siblings": [ + { + "goal_text": "findall_solutions (local-canonical X262^2) X263^2", + "goal_id": 1832 + } + ], + "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": 607, + "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": 606, + "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": 605, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 604, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 608, + "runtime_id": 8, + "step": [ + "Findall", + { + "findall_goal_id": 1832, + "findall_goal_text": "findall_solutions (local-canonical X262^2) X263^2", + "findall_cards": [ + { + "step_id": 0, + "runtime_id": 15, + "step": [ + "Init", + { + "goal_text": "local-canonical X0^2", + "goal_id": 1834 + } + ], + "color": "Grey" + }, + { + "step_id": 1, + "runtime_id": 15, + "step": [ + "Inference", + { + "current_goal_id": 1834, + "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": [ + "X263^2 := []" + ], + "findall_stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "findall", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 608, + "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": 607, + "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": 606, + "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": 605, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 604, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 609, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1831, + "current_goal_text": "std.map [] local-canonical-gref X259^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", + "X259^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": 609, + "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": 606, + "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": 605, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 604, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 610, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1828, + "current_goal_text": "coq.copy-clauses-for-unfold [] X260^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", + "X260^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": 610, + "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": 605, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 604, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 611, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1829, + "current_goal_text": "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X261^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X261^2 | c6] c3)] =>\n copy c0 X257^2", + "current_goal_predicate": "=>", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "copy c0 X257^2", + "goal_id": 1835 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 611, + "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": 605, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 604, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 612, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1835, + "current_goal_text": "copy c0 X257^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 := X257^2" + ] + ] + }, + "siblings": [ + { + "goal_text": "name c0", + "goal_id": 1836 + }, + { + "goal_text": "!", + "goal_id": 1837 + }, + { + "goal_text": "c0 = X257^2", + "goal_id": 1838 + }, + { + "goal_text": "!", + "goal_id": 1839 + } + ], + "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": 612, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 611, + "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": 605, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 604, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 613, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1836, + "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": 1840 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "name", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 613, + "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": 612, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 611, + "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": 605, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 604, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 614, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1840, + "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": 614, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "name", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 613, + "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": 612, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 611, + "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": 605, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 604, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 615, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1837, + "cut_victims": [] + } + ], + "color": "Grey" + }, + { + "step_id": 616, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1838, + "current_goal_text": "c0 = X257^2", + "current_goal_predicate": "=", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Assign", + "X257 c0 c1 := c0" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 616, + "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": 612, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 611, + "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": 605, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 604, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 617, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1839, + "cut_victims": [] + } + ], + "color": "Grey" + }, + { + "step_id": 618, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1826, + "current_goal_text": "std.map [] (copy-pack-holes c0) X258^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", + "X258^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": 618, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 604, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 124, + "column": 0, + "character": 4097 + } + ] + } + ], + "step_id": 570, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 619, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1776, + "current_goal_text": "std.spy\n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", + "current_goal_predicate": "std.spy", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := std.take 1 \n [app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1" + ] + ] + }, + "siblings": [ + { + "goal_text": "trace.counter run X264^2", + "goal_id": 1841 + }, + { + "goal_text": "if (not (X264^2 = 0)) (std.debug-print run= X264^2) true", + "goal_id": 1842 + }, + { + "goal_text": "std.debug-print ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", + "goal_id": 1843 + }, + { + "goal_text": "std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1", + "goal_id": 1844 + }, + { + "goal_text": "std.debug-print ---->>---- exit: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", + "goal_id": 1845 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 619, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": "YellowRed" + }, + { + "step_id": 620, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1841, + "current_goal_text": "trace.counter run X264^2", + "current_goal_predicate": "trace.counter", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "trace.counter", + "kind": "FFI", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "X264^2 = 0", + "goal_id": 1846 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "trace.counter", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 620, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 619, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 621, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1846, + "current_goal_text": "X264^2 = 0", + "current_goal_predicate": "=", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Assign", + "X264^2 := 0" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 621, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "trace.counter", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 620, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 619, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 622, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1842, + "current_goal_text": "if (not (0 = 0)) (std.debug-print run= 0) 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 (0 = 0)" + ], + [ + "Assign", + "A1 := std.debug-print run= 0" + ] + ] + }, + "siblings": [ + { + "goal_text": "not (0 = 0)", + "goal_id": 1847 + }, + { + "goal_text": "!", + "goal_id": 1848 + }, + { + "goal_text": "std.debug-print run= 0", + "goal_id": 1849 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 627 + ], + "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": 622, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 619, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 623, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1847, + "current_goal_text": "not (0 = 0)", + "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 := 0 = 0" + ] + ] + }, + "siblings": [ + { + "goal_text": "0 = 0", + "goal_id": 1850 + }, + { + "goal_text": "!", + "goal_id": 1851 + }, + { + "goal_text": "fail", + "goal_id": 1852 + } + ], + "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": 623, + "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": 622, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 619, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": "YellowRed" + }, + { + "step_id": 624, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1850, + "current_goal_text": "0 = 0", + "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": 624, + "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": 623, + "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": 622, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 619, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 625, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1851, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "not (0 = 0)", + "goal_id": 1847 + }, + "cut_branch": { + "rule_text": "(not _) :- .", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 54, + "column": 0, + "character": 631 + } + ] + } + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 626, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1852, + "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": 623, + "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": 622, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 619, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 627, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1842, + "current_goal_text": "if (not (0 = 0)) (std.debug-print run= 0) 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": 1853 + } + ], + "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": 627, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 619, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 628, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1853, + "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": 628, + "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": 627, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 619, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 629, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1843, + "current_goal_text": "std.debug-print ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", + "current_goal_predicate": "std.debug-print", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_loc": [ + "File", + { + "filename": "/build/source/./elpi/coq-lib.elpi", + "line": 17, + "column": 0, + "character": 660 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := ----<<---- enter: " + ], + [ + "Assign", + "A1 := std.take 1 \n [app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1" + ] + ] + }, + "siblings": [ + { + "goal_text": "!", + "goal_id": 1854 + }, + { + "goal_text": "coq.say ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", + "goal_id": 1855 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_loc": [ + "File", + { + "filename": "/build/source/./elpi/coq-lib.elpi", + "line": 17, + "column": 0, + "character": 660 + } + ] + } + ], + "step_id": 629, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 619, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 630, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1854, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "std.debug-print ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", + "goal_id": 1843 + }, + "cut_branch": { + "rule_text": "(std.debug-print A0 A1) :- (print A0 A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 24, + "column": 0, + "character": 874 + } + ] + } + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 631, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1855, + "current_goal_text": "coq.say ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", + "current_goal_predicate": "coq.say", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "coq.say", + "kind": "FFI", + "payload": [] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "coq.say", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 631, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_loc": [ + "File", + { + "filename": "/build/source/./elpi/coq-lib.elpi", + "line": 17, + "column": 0, + "character": 660 + } + ] + } + ], + "step_id": 629, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 619, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 632, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1844, + "current_goal_text": "std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1", + "current_goal_predicate": "std.take", + "failed_attempts": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 89, + "column": 0, + "character": 2932 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := 1" + ], + [ + "Assign", + "A1 := app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]" + ], + [ + "Assign", + "A2 := [c0]" + ], + [ + "Fail", + "unify X230^1 with [app EXN PRINTING: Elpi__Runtime.HO.RestrictionFailure" + ] + ] + } + ], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(std.take _ _ _) :- (std.fatal-error take run out of list items).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 90, + "column": 0, + "character": 2985 + } + ] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "std.fatal-error take run out of list items", + "goal_id": 1856 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 89, + "column": 0, + "character": 2932 + } + ] + } + ], + "step_id": 632, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 619, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": "YellowRed" + }, + { + "step_id": 633, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1856, + "current_goal_text": "std.fatal-error take run out of list items", + "current_goal_predicate": "std.fatal-error", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(std.fatal-error A0) :- (!), (stop A0).", + "rule_loc": [ + "File", + { + "filename": "/build/source/./elpi/coq-lib.elpi", + "line": 9, + "column": 0, + "character": 465 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := take run out of list items" + ] + ] + }, + "siblings": [ + { + "goal_text": "!", + "goal_id": 1857 + }, + { + "goal_text": "stop take run out of list items", + "goal_id": 1858 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(std.fatal-error A0) :- (!), (stop A0).", + "rule_loc": [ + "File", + { + "filename": "/build/source/./elpi/coq-lib.elpi", + "line": 9, + "column": 0, + "character": 465 + } + ] + } + ], + "step_id": 633, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 89, + "column": 0, + "character": 2932 + } + ] + } + ], + "step_id": 632, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 619, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": "YellowRed" + }, + { + "step_id": 634, + "runtime_id": 8, + "step": [ + "Cut", + { + "cut_goal_id": 1857, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "std.fatal-error take run out of list items", + "goal_id": 1856 + }, + "cut_branch": { + "rule_text": "(std.fatal-error A0) :- (halt A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 16, + "column": 0, + "character": 659 + } + ] + } + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 635, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1858, + "current_goal_text": "stop take run out of list items", + "current_goal_predicate": "stop", + "failed_attempts": [ + { + "rule": [ + "UserRule", + { + "rule_text": "stop :- (halt).", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 67, + "column": 0, + "character": 960 + } + ] + } + ], + "events": [] + } + ], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(stop A0) :- (get-option ltac:fail A1), (!), (coq.ltac.fail A1 A0).", + "rule_loc": [ + "File", + { + "filename": "/build/source/./elpi/coq-lib.elpi", + "line": 22, + "column": 0, + "character": 794 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := take run out of list items" + ] + ] + }, + "siblings": [ + { + "goal_text": "get-option ltac:fail X265^2", + "goal_id": 1859 + }, + { + "goal_text": "!", + "goal_id": 1860 + }, + { + "goal_text": "coq.ltac.fail X265^2 take run out of list items", + "goal_id": 1861 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 637 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "stop :- (halt).", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 67, + "column": 0, + "character": 960 + } + ] + } + ], + "step_id": 635, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.fatal-error A0) :- (!), (stop A0).", + "rule_loc": [ + "File", + { + "filename": "/build/source/./elpi/coq-lib.elpi", + "line": 9, + "column": 0, + "character": 465 + } + ] + } + ], + "step_id": 633, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 89, + "column": 0, + "character": 2932 + } + ] + } + ], + "step_id": 632, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 619, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": "YellowRed" + }, + { + "step_id": 636, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1859, + "current_goal_text": "get-option ltac:fail X265^2", + "current_goal_predicate": "get-option", + "failed_attempts": [], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "stop :- (halt).", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 67, + "column": 0, + "character": 960 + } + ] + } + ], + "step_id": 635, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.fatal-error A0) :- (!), (stop A0).", + "rule_loc": [ + "File", + { + "filename": "/build/source/./elpi/coq-lib.elpi", + "line": 9, + "column": 0, + "character": 465 + } + ] + } + ], + "step_id": 633, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 89, + "column": 0, + "character": 2932 + } + ] + } + ], + "step_id": 632, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 619, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": 637, + "runtime_id": 8, + "step": [ + "Inference", + { + "current_goal_id": 1858, + "current_goal_text": "stop take run out of list items", + "current_goal_predicate": "stop", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(stop A0) :- (coq.error A0).", + "rule_loc": [ + "File", + { + "filename": "/build/source/./elpi/coq-lib.elpi", + "line": 23, + "column": 0, + "character": 852 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := take run out of list items" + ] + ] + }, + "siblings": [ + { + "goal_text": "coq.error take run out of list items", + "goal_id": 1862 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(stop A0) :- (coq.error A0).", + "rule_loc": [ + "File", + { + "filename": "/build/source/./elpi/coq-lib.elpi", + "line": 23, + "column": 0, + "character": 852 + } + ] + } + ], + "step_id": 637, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.fatal-error A0) :- (!), (stop A0).", + "rule_loc": [ + "File", + { + "filename": "/build/source/./elpi/coq-lib.elpi", + "line": 9, + "column": 0, + "character": 465 + } + ] + } + ], + "step_id": 633, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 89, + "column": 0, + "character": 2932 + } + ] + } + ], + "step_id": 632, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 45, + "column": 0, + "character": 1682 + } + ] + } + ], + "step_id": 619, + "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": 562, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 561, + "runtime_id": 8 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 560, + "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": 558, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "elpi-builtin.elpi", + "line": 28, + "column": 0, + "character": 296 + } + ] + } + ], + "step_id": 557, + "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": 556, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 555, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 546, + "runtime_id": 8 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 256, + "column": 0, + "character": 8603 + } + ] + } + ], + "step_id": 536, + "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": 535, + "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": 534, + "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": "YellowRed" + } +] \ No newline at end of file diff --git a/src/tests/sources/broken_trace1.json b/src/tests/sources/broken_trace1.json new file mode 100644 index 0000000..09b3ee5 --- /dev/null +++ b/src/tests/sources/broken_trace1.json @@ -0,0 +1,5343 @@ +{"step" : 0,"kind" : ["Info"],"goal_id" : 1121,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)]"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1121,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","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)]"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1121,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1121,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1122"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1122,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)]"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1122,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1122,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["main","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)]"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1122,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1122,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"./structures.v\", line 594, column 0, character 2:","File \"./structures.v\", line 596, column 0, character 140:","File \"./structures.v\", line 600, column 0, character 368:"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1122,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"./structures.v\", line 594, column 0, character 2:","(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _)))."]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := _"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := arity X1"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1122,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1123"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1123,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1123,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1124"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1124,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) _))"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1123,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 1123,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 1123,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1122","File \"./structures.v\", line 596, column 0, character 140:","(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)))."]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1122","File \"./structures.v\", line 600, column 0, character 368:","(main _) :- (coq.error\n Usage: HB.instance Definition := T ...)."]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 1123,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1124,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["with-attributes","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) _))"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1124,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1124,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 14, column 0, character 453:"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1124,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 14, column 0, character 453:","(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0))."]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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) _)"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1124,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1125"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["attributes X2"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1126"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1126,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["pi c0 \\\n pi c1 \\\n pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi c8 \\ 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"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1127"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1127,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1128"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1128,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) _))"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["attributes","attributes X2"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:1)\", line 1, column 0, character 0:"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:1)\", line 1, column 0, character 0:","(attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)]) :- ."]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X2 := [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)]"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 1126,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","pi c0 \\\n pi c1 \\\n pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi c8 \\ 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"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 1126,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 1126,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1129"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 1129,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 1129,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1129,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.parse-attributes","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"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1129,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1129,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 633, column 0, character 27114:"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1129,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 633, column 0, character 27114:","(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!)."]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)]"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X3"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1129,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1130"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1131"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1131,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X4 =>\n parse-attributes.aux\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] X3"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1132"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1132,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att verbose bool"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X4 := [X5 | X6]"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1133"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1133,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X5 = supported-attribute (att verbose bool)"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1133,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1134"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1134,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1133,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 1133,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X5 = supported-attribute (att verbose bool)"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 1133,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 1133,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X5 := supported-attribute (att verbose bool)"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 1133,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1134,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1134,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1134,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1134,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att mathcomp bool"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X6 := [X7 | X8]"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1134,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1135"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1135,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X7 = supported-attribute (att mathcomp bool)"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1135,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1136"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1136,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1135,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 1135,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X7 = supported-attribute (att mathcomp bool)"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 1135,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 1135,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X7 := supported-attribute (att mathcomp bool)"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 1135,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1136,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1136,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1136,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1136,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att mathcomp.axiom string"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X8 := [X9 | X10]"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1136,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1137"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1137,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X9 = supported-attribute (att mathcomp.axiom string)"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1137,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1138"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1138,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1137,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 1137,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X9 = supported-attribute (att mathcomp.axiom string)"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 1137,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 1137,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X9 := supported-attribute (att mathcomp.axiom string)"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 1137,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1138,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1138,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1138,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1138,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att short.type string"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X10 := [X11 | X12]"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1138,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1139"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1139,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X11 = supported-attribute (att short.type string)"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1139,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1140"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1140,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1139,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 1139,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X11 = supported-attribute (att short.type string)"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 1139,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 1139,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X11 := supported-attribute (att short.type string)"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 1139,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1140,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1140,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1140,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1140,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att short.pack string"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X12 := [X13 | X14]"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1140,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1141"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1141,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X13 = supported-attribute (att short.pack string)"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1141,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1142"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1142,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1141,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 1141,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X13 = supported-attribute (att short.pack string)"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 1141,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 1141,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X13 := supported-attribute (att short.pack string)"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 1141,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1142,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1142,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1142,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1142,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att infer attmap"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X14 := [X15 | X16]"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1142,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1143"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1143,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X15 = supported-attribute (att infer attmap)"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1143,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1144"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1144,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1143,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 1143,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X15 = supported-attribute (att infer attmap)"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 1143,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 1143,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X15 := supported-attribute (att infer attmap)"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 1143,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1144,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1144,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1144,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1144,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att key string"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X16 := [X17 | X18]"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1144,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1145"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1145,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X17 = supported-attribute (att key string)"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1145,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1146"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1146,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1145,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 1145,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X17 = supported-attribute (att key string)"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 1145,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 1145,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X17 := supported-attribute (att key string)"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 1145,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1146,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1146,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1146,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1146,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att arg_sort bool"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X18 := [X19 | X20]"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1146,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1147"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1147,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X19 = supported-attribute (att arg_sort bool)"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1147,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1148"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1148,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1147,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 1147,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X19 = supported-attribute (att arg_sort bool)"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 1147,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 1147,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X19 := supported-attribute (att arg_sort bool)"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 1147,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1148,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1148,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1148,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1148,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att log bool"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X20 := [X21 | X22]"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1148,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1149"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1149,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X21 = supported-attribute (att log bool)"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1149,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1150"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1150,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1149,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 1149,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X21 = supported-attribute (att log bool)"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 1149,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 1149,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X21 := supported-attribute (att log bool)"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 1149,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1150,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1150,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1150,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1150,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att log.raw bool"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X22 := [X23 | X24]"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1150,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1151"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1151,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X23 = supported-attribute (att log.raw bool)"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1151,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1152"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1152,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1151,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 1151,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X23 = supported-attribute (att log.raw bool)"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 1151,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 1151,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X23 := supported-attribute (att log.raw bool)"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 1151,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1152,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1152,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1152,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1152,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att compress_coercions bool"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X24 := [X25 | X26]"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1152,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1153"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1153,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X25 = supported-attribute (att compress_coercions bool)"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1153,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1154"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1154,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1153,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 1153,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X25 = supported-attribute (att compress_coercions bool)"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 1153,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 1153,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X25 := supported-attribute (att compress_coercions bool)"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 1153,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1154,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1154,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1154,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1154,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att export bool"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X26 := [X27 | X28]"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1154,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1155"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1155,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X27 = supported-attribute (att export bool)"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1155,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1156"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1156,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1155,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 1155,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X27 = supported-attribute (att export bool)"]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 1155,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 1155,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X27 := supported-attribute (att export bool)"]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 1155,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1156,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1156,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1156,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1156,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att skip string"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X28 := [X29 | X30]"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1156,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1157"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1157,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X29 = supported-attribute (att skip string)"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1157,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1158"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1158,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1157,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 1157,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X29 = supported-attribute (att skip string)"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 1157,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 1157,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X29 := supported-attribute (att skip string)"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 1157,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1158,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1158,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1158,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1158,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att local bool"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool]"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X30 := [X31 | X32]"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1158,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1159"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1159,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X31 = supported-attribute (att local bool)"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1159,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1160"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1160,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1159,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 35,"kind" : ["Info"],"goal_id" : 1159,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X31 = supported-attribute (att local bool)"]} +{"step" : 35,"kind" : ["Info"],"goal_id" : 1159,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 35,"kind" : ["Info"],"goal_id" : 1159,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 35,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X31 := supported-attribute (att local bool)"]} +{"step" : 35,"kind" : ["Info"],"goal_id" : 1159,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1160,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1160,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1160,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1160,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att fail bool"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [att doc string, att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool]"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X32 := [X33 | X34]"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1160,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1161"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1161,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X33 = supported-attribute (att fail bool)"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1161,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1162"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1162,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1161,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 37,"kind" : ["Info"],"goal_id" : 1161,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X33 = supported-attribute (att fail bool)"]} +{"step" : 37,"kind" : ["Info"],"goal_id" : 1161,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 37,"kind" : ["Info"],"goal_id" : 1161,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 37,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X33 := supported-attribute (att fail bool)"]} +{"step" : 37,"kind" : ["Info"],"goal_id" : 1161,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1162,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1162,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1162,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1162,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att doc string"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool]"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X34 := [X35 | X36]"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1162,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1163"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1163,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X35 = supported-attribute (att doc string)"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1163,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1164"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1164,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1163,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 39,"kind" : ["Info"],"goal_id" : 1163,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X35 = supported-attribute (att doc string)"]} +{"step" : 39,"kind" : ["Info"],"goal_id" : 1163,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 39,"kind" : ["Info"],"goal_id" : 1163,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 39,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X35 := supported-attribute (att doc string)"]} +{"step" : 39,"kind" : ["Info"],"goal_id" : 1163,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1164,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1164,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1164,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1164,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att primitive_class bool"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [att primitive bool, att non_forgetful_inheritance bool, att hnf bool]"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X36 := [X37 | X38]"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1164,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1165"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1165,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X37 = supported-attribute (att primitive_class bool)"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1165,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1166"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1166,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map\n [att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X38"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1165,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 41,"kind" : ["Info"],"goal_id" : 1165,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X37 = supported-attribute (att primitive_class bool)"]} +{"step" : 41,"kind" : ["Info"],"goal_id" : 1165,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 41,"kind" : ["Info"],"goal_id" : 1165,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 41,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X37 := supported-attribute (att primitive_class bool)"]} +{"step" : 41,"kind" : ["Info"],"goal_id" : 1165,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1166,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map\n [att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X38"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1166,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1166,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1166,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att primitive bool"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [att non_forgetful_inheritance bool, att hnf bool]"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X38 := [X39 | X40]"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1166,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1167"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1167,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X39 = supported-attribute (att primitive bool)"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1167,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1168"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1168,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X40"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1167,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 43,"kind" : ["Info"],"goal_id" : 1167,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X39 = supported-attribute (att primitive bool)"]} +{"step" : 43,"kind" : ["Info"],"goal_id" : 1167,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 43,"kind" : ["Info"],"goal_id" : 1167,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 43,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X39 := supported-attribute (att primitive bool)"]} +{"step" : 43,"kind" : ["Info"],"goal_id" : 1167,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1168,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X40"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1168,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1168,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1168,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att non_forgetful_inheritance bool"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [att hnf bool]"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X40 := [X41 | X42]"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1168,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1169"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1169,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X41 = supported-attribute (att non_forgetful_inheritance bool)"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1169,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1170"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1170,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [att hnf bool] (c0 \\ c1 \\ c1 = supported-attribute c0) X42"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1169,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 45,"kind" : ["Info"],"goal_id" : 1169,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X41 = supported-attribute (att non_forgetful_inheritance bool)"]} +{"step" : 45,"kind" : ["Info"],"goal_id" : 1169,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 45,"kind" : ["Info"],"goal_id" : 1169,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 45,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X41 := supported-attribute (att non_forgetful_inheritance bool)"]} +{"step" : 45,"kind" : ["Info"],"goal_id" : 1169,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1170,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [att hnf bool] (c0 \\ c1 \\ c1 = supported-attribute c0) X42"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1170,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1170,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1170,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att hnf bool"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X42 := [X43 | X44]"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1170,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1171"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1171,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X43 = supported-attribute (att hnf bool)"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1171,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1172"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1172,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [] (c0 \\ c1 \\ c1 = supported-attribute c0) X44"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1171,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 47,"kind" : ["Info"],"goal_id" : 1171,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X43 = supported-attribute (att hnf bool)"]} +{"step" : 47,"kind" : ["Info"],"goal_id" : 1171,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 47,"kind" : ["Info"],"goal_id" : 1171,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 47,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X43 := supported-attribute (att hnf bool)"]} +{"step" : 47,"kind" : ["Info"],"goal_id" : 1171,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 48,"kind" : ["Info"],"goal_id" : 1172,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] (c0 \\ c1 \\ c1 = supported-attribute c0) X44"]} +{"step" : 48,"kind" : ["Info"],"goal_id" : 1172,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 48,"kind" : ["Info"],"goal_id" : 1172,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 48,"kind" : ["Info"],"goal_id" : 1172,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 48,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X44 := []"]} +{"step" : 48,"kind" : ["Info"],"goal_id" : 1172,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 49,"kind" : ["Info"],"goal_id" : 1131,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","[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"]} +{"step" : 49,"kind" : ["Info"],"goal_id" : 1131,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 49,"kind" : ["Info"],"goal_id" : 1131,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1173"]} +{"step" : 49,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["parse-attributes.aux\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] X3"]} +{"step" : 49,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["parse-attributes.aux","parse-attributes.aux\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] X3"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:6)\", line 1, column 0, character 0:","File \"/build/source/./elpi/coq-lib.elpi\", line 637, column 0, character 27263:","File \"/build/source/./elpi/coq-lib.elpi\", line 641, column 0, character 27574:","File \"/build/source/./elpi/coq-lib.elpi\", line 646, column 0, character 27781:","File \"/build/source/./elpi/coq-lib.elpi\", line 652, column 0, character 28097:"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:6)\", line 1, column 0, character 0:","(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)."]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := elpi.loc"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] with\n [attribute elpi.loc (node A1) | A2]"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 637, column 0, character 27263:","(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)."]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := elpi.loc"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] with\n [attribute elpi.loc (node A1) | A2]"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 641, column 0, character 27574:","(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)."]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := elpi.loc"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] with\n [attribute elpi.loc (node A1) | A2]"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 646, column 0, character 27781:","(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)."]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := elpi.loc"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["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]"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 652, column 0, character 28097:","(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)."]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := elpi.loc"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := File \"(stdin)\", line 1, column 2, character 3:"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := []"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := "]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X3"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1174"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1175"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1175,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if ( = ) (X45 = elpi.loc) (X45 is ^ . ^ elpi.loc)"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1176"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1176,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.valid-loc-attribute X45 File \"(stdin)\", line 1, column 2, character 3: \n X46"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1177"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (X46 = error X47) (coq.error X47) true"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1178"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1178,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X3 = [get-option X45 File \"(stdin)\", line 1, column 2, character 3: | X48]"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1179"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1179,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["parse-attributes.aux [] X48"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 51,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 51,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 51,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1175,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if ( = ) (X45 = elpi.loc) (X45 is ^ . ^ elpi.loc)"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1175,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1175,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1175,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := = "]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X45 = elpi.loc"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1175,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1180"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1180,"runtime_id" : 8,"name" : "user:newgoal","payload" : [" = "]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1180,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1181"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1181,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1180,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1182"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1182,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X45 = elpi.loc"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1180,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 53,"kind" : ["Info"],"goal_id" : 1180,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["="," = "]} +{"step" : 53,"kind" : ["Info"],"goal_id" : 1180,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 53,"kind" : ["Info"],"goal_id" : 1180,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 53,"kind" : ["Info"],"goal_id" : 1180,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 54,"kind" : ["Info"],"goal_id" : 1181,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 54,"kind" : ["Info"],"goal_id" : 1181,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 54,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1175","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 54,"kind" : ["Info"],"goal_id" : 1181,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 55,"kind" : ["Info"],"goal_id" : 1182,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X45 = elpi.loc"]} +{"step" : 55,"kind" : ["Info"],"goal_id" : 1182,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 55,"kind" : ["Info"],"goal_id" : 1182,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 55,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X45 := elpi.loc"]} +{"step" : 55,"kind" : ["Info"],"goal_id" : 1182,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 1176,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.valid-loc-attribute","coq.valid-loc-attribute elpi.loc \n File \"(stdin)\", line 1, column 2, character 3: X46"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 1176,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 1176,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 594, column 0, character 25390:"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 1176,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 594, column 0, character 25390:","(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)))."]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := elpi.loc"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := File \"(stdin)\", line 1, column 2, character 3:"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X46"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 1176,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1183"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 1183,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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))"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 1183,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1183,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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))"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1183,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1183,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1183,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := supported-attribute (att elpi.loc loc)"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1183,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1184"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["supported-attribute (att elpi.loc loc)"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1185"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1185,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1186"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1186,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["supported-attribute","supported-attribute (att elpi.loc loc)"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"/build/source/./elpi/coq-lib.elpi\", line 573, column 0, character 24545:","File \"/build/source/./elpi/coq-lib.elpi\", line 574, column 0, character 24587:"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att verbose bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att verbose bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att mathcomp bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att mathcomp bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att mathcomp.axiom string)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att mathcomp.axiom string"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att short.type string)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att short.type string"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att short.pack string)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att short.pack string"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att infer attmap)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att infer attmap"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att key string)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att key string"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att arg_sort bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att arg_sort bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att log bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att log bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att log.raw bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att log.raw bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att compress_coercions bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att compress_coercions bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att export bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att export bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att skip string)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att skip string"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att local bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att local bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att fail bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att fail bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att doc string)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att doc string"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att primitive_class bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att primitive_class bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att primitive bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att primitive bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att non_forgetful_inheritance bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att non_forgetful_inheritance bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att hnf bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att hnf bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 573, column 0, character 24545:","(supported-attribute (att elpi.loc loc)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 59,"kind" : ["Info"],"goal_id" : 1185,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 59,"kind" : ["Info"],"goal_id" : 1185,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 59,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1184","File \"/build/source/./elpi/coq-lib.elpi\", line 574, column 0, character 24587:","(supported-attribute (att A0 string)) :- (rex_match ^elpi\\. A0)."]} +{"step" : 59,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1183","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 59,"kind" : ["Info"],"goal_id" : 1185,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1186,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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)"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1186,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1186,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1186,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X46 = ok"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1186,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1187"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1188"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1188,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1189"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1189,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X46 = ok"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["primitive?","primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t"]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 373, column 0, character 8225:"]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 373, column 0, character 8225:","(primitive? A0 A1) :- (is_cdata A0 (ctype A1))."]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := File \"(stdin)\", line 1, column 2, character 3:"]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := Loc.t"]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1190"]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 1190,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["is_cdata File \"(stdin)\", line 1, column 2, character 3: (ctype Loc.t)"]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 1190,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 62,"kind" : ["Info"],"goal_id" : 1190,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["is_cdata","is_cdata File \"(stdin)\", line 1, column 2, character 3: (ctype Loc.t)"]} +{"step" : 62,"kind" : ["Info"],"goal_id" : 1190,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 62,"kind" : ["Info"],"goal_id" : 1190,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["is_cdata"]} +{"step" : 62,"kind" : ["Info"],"goal_id" : 1190,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 62,"kind" : ["Info"],"goal_id" : 1190,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1191"]} +{"step" : 62,"kind" : ["Info"],"goal_id" : 1191,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["ctype Loc.t = ctype Loc.t"]} +{"step" : 63,"kind" : ["Info"],"goal_id" : 1191,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","ctype Loc.t = ctype Loc.t"]} +{"step" : 63,"kind" : ["Info"],"goal_id" : 1191,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 63,"kind" : ["Info"],"goal_id" : 1191,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 63,"kind" : ["Info"],"goal_id" : 1191,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 64,"kind" : ["Info"],"goal_id" : 1188,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 64,"kind" : ["Info"],"goal_id" : 1188,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 64,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1186","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 64,"kind" : ["Info"],"goal_id" : 1188,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 65,"kind" : ["Info"],"goal_id" : 1189,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X46 = ok"]} +{"step" : 65,"kind" : ["Info"],"goal_id" : 1189,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 65,"kind" : ["Info"],"goal_id" : 1189,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 65,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X46 := ok"]} +{"step" : 65,"kind" : ["Info"],"goal_id" : 1189,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (ok = error X47) (coq.error X47) true"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ok = error X47"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := coq.error X47"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1192"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["ok = error X47"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1193"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1193,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1194"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1194,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.error X47"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 67,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","ok = error X47"]} +{"step" : 67,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 67,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 67,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify ok with error X47"]} +{"step" : 67,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["fail"]} +{"step" : 68,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (ok = error X47) (coq.error X47) true"]} +{"step" : 68,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 68,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 68,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 68,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 68,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1195"]} +{"step" : 68,"kind" : ["Info"],"goal_id" : 1195,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 68,"kind" : ["Info"],"goal_id" : 1195,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 69,"kind" : ["Info"],"goal_id" : 1195,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 69,"kind" : ["Info"],"goal_id" : 1195,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 69,"kind" : ["Info"],"goal_id" : 1195,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 69,"kind" : ["Info"],"goal_id" : 1195,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 69,"kind" : ["Info"],"goal_id" : 1195,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 70,"kind" : ["Info"],"goal_id" : 1178,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X3 =\n [get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3: | X48]"]} +{"step" : 70,"kind" : ["Info"],"goal_id" : 1178,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 70,"kind" : ["Info"],"goal_id" : 1178,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 70,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X3 := [get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3: | X48]"]} +{"step" : 70,"kind" : ["Info"],"goal_id" : 1178,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 71,"kind" : ["Info"],"goal_id" : 1179,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["parse-attributes.aux","parse-attributes.aux [] X48"]} +{"step" : 71,"kind" : ["Info"],"goal_id" : 1179,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 71,"kind" : ["Info"],"goal_id" : 1179,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 636, column 0, character 27233:"]} +{"step" : 71,"kind" : ["Info"],"goal_id" : 1179,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 636, column 0, character 27233:","(parse-attributes.aux [] _ []) :- ."]} +{"step" : 71,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X48 := []"]} +{"step" : 71,"kind" : ["Info"],"goal_id" : 1179,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 72,"kind" : ["Info"],"goal_id" : 1132,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 72,"kind" : ["Info"],"goal_id" : 1132,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 72,"kind" : ["Info"],"goal_id" : 1132,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 73,"kind" : ["Info"],"goal_id" : 1127,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 73,"kind" : ["Info"],"goal_id" : 1127,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 73,"kind" : ["Info"],"goal_id" : 1127,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 74,"kind" : ["Info"],"goal_id" : 1128,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","[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) _))"]} +{"step" : 74,"kind" : ["Info"],"goal_id" : 1128,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 74,"kind" : ["Info"],"goal_id" : 1128,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1196"]} +{"step" : 74,"kind" : ["Info"],"goal_id" : 1196,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) _)"]} +{"step" : 74,"kind" : ["Info"],"goal_id" : 1196,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 75,"kind" : ["Info"],"goal_id" : 1196,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","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) _)"]} +{"step" : 75,"kind" : ["Info"],"goal_id" : 1196,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 75,"kind" : ["Info"],"goal_id" : 1196,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1197"]} +{"step" : 75,"kind" : ["Info"],"goal_id" : 1197,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["save-docstring"]} +{"step" : 75,"kind" : ["Info"],"goal_id" : 1196,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1198"]} +{"step" : 75,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) _)"]} +{"step" : 75,"kind" : ["Info"],"goal_id" : 1196,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 76,"kind" : ["Info"],"goal_id" : 1197,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["save-docstring","save-docstring"]} +{"step" : 76,"kind" : ["Info"],"goal_id" : 1197,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 76,"kind" : ["Info"],"goal_id" : 1197,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 81, column 0, character 2429:"]} +{"step" : 76,"kind" : ["Info"],"goal_id" : 1197,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 81, column 0, character 2429:","save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true)."]} +{"step" : 76,"kind" : ["Info"],"goal_id" : 1197,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1199"]} +{"step" : 76,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (get-option elpi.loc X52 , get-option doc X53) \n (acc-clause _ (docstring X52 X53)) true"]} +{"step" : 76,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (get-option elpi.loc X52 , get-option doc X53) \n (acc-clause _ (docstring X52 X53)) true"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := get-option elpi.loc X52 , get-option doc X53"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := acc-clause _ (docstring X52 X53)"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1200"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.loc X52 , get-option doc X53"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1201"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1201,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1202"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1202,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["acc-clause _ (docstring X52 X53)"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 78,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","get-option elpi.loc X52 , get-option doc X53"]} +{"step" : 78,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 78,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1203"]} +{"step" : 78,"kind" : ["Info"],"goal_id" : 1203,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.loc X52"]} +{"step" : 78,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1204"]} +{"step" : 78,"kind" : ["Info"],"goal_id" : 1204,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option doc X53"]} +{"step" : 78,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 79,"kind" : ["Info"],"goal_id" : 1203,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option elpi.loc X52"]} +{"step" : 79,"kind" : ["Info"],"goal_id" : 1203,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 79,"kind" : ["Info"],"goal_id" : 1203,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:74)\", line 1, column 0, character 0:"]} +{"step" : 79,"kind" : ["Info"],"goal_id" : 1203,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:74)\", line 1, column 0, character 0:","(get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:) :- ."]} +{"step" : 79,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X52 := File \"(stdin)\", line 1, column 2, character 3:"]} +{"step" : 79,"kind" : ["Info"],"goal_id" : 1203,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 80,"kind" : ["Info"],"goal_id" : 1204,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option doc X53"]} +{"step" : 80,"kind" : ["Info"],"goal_id" : 1204,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 80,"kind" : ["Info"],"goal_id" : 1204,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 80,"kind" : ["Info"],"goal_id" : 1204,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 81,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (get-option elpi.loc X52 , get-option doc X53) \n (acc-clause _ (docstring X52 X53)) true"]} +{"step" : 81,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 81,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 81,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 81,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 81,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1205"]} +{"step" : 81,"kind" : ["Info"],"goal_id" : 1205,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 81,"kind" : ["Info"],"goal_id" : 1205,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 82,"kind" : ["Info"],"goal_id" : 1205,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 82,"kind" : ["Info"],"goal_id" : 1205,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 82,"kind" : ["Info"],"goal_id" : 1205,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 82,"kind" : ["Info"],"goal_id" : 1205,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 82,"kind" : ["Info"],"goal_id" : 1205,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["with-logging","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) _)"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 267, column 0, character 10575:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 283, column 0, character 11151:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 289, column 0, character 11419:"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 267, column 0, character 10575:","(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)."]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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) _"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1206"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.hb.log _ , X54 = tt ; get-option elpi.hb.log.raw _ , X54 = ff"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1207"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1207,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1208"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1208,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.loc X55"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1209"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1209,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["loc.fields X55 X56 _ _ _ _"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1210"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1210,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.any->string X55 X57"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1211"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1211,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X58 is X56 ^ .hb"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1212"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1212,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["open_append X58 X59"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1213"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1213,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.string.concat \n [, HIERARCHY BUILDER PATCH v1, X57, ] X60"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1214"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1214,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["output X59 X60"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1215"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1215,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["close_out X59"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1216"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1216,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) _"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1217"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1217,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.private.logger-close X61"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1218"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1218,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.intersperse coq.pp.spc X61 X62"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1219"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1219,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.pp->string (coq.pp.box (coq.pp.v 0) X62) X63"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1220"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1220,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["open_append X58 X64"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1221"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1221,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["output X64 X63"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1222"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1222,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["close_out X64"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 84,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","get-option elpi.hb.log _ , X54 = tt ; get-option elpi.hb.log.raw _ , X54 = ff"]} +{"step" : 84,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 84,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 84,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 84,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := get-option elpi.hb.log _ , X54 = tt"]} +{"step" : 84,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1223"]} +{"step" : 84,"kind" : ["Info"],"goal_id" : 1223,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.hb.log _ , X54 = tt"]} +{"step" : 84,"kind" : ["Info"],"goal_id" : 1223,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 85,"kind" : ["Info"],"goal_id" : 1223,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","get-option elpi.hb.log _ , X54 = tt"]} +{"step" : 85,"kind" : ["Info"],"goal_id" : 1223,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 85,"kind" : ["Info"],"goal_id" : 1223,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1224"]} +{"step" : 85,"kind" : ["Info"],"goal_id" : 1224,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.hb.log _"]} +{"step" : 85,"kind" : ["Info"],"goal_id" : 1223,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1225"]} +{"step" : 85,"kind" : ["Info"],"goal_id" : 1225,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X54 = tt"]} +{"step" : 85,"kind" : ["Info"],"goal_id" : 1223,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 86,"kind" : ["Info"],"goal_id" : 1224,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option elpi.hb.log _"]} +{"step" : 86,"kind" : ["Info"],"goal_id" : 1224,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 86,"kind" : ["Info"],"goal_id" : 1224,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 86,"kind" : ["Info"],"goal_id" : 1224,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 87,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","get-option elpi.hb.log _ , X54 = tt ; get-option elpi.hb.log.raw _ , X54 = ff"]} +{"step" : 87,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 87,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 87,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 87,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := get-option elpi.hb.log.raw _ , X54 = ff"]} +{"step" : 87,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1226"]} +{"step" : 87,"kind" : ["Info"],"goal_id" : 1226,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.hb.log.raw _ , X54 = ff"]} +{"step" : 87,"kind" : ["Info"],"goal_id" : 1226,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 88,"kind" : ["Info"],"goal_id" : 1226,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","get-option elpi.hb.log.raw _ , X54 = ff"]} +{"step" : 88,"kind" : ["Info"],"goal_id" : 1226,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 88,"kind" : ["Info"],"goal_id" : 1226,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1227"]} +{"step" : 88,"kind" : ["Info"],"goal_id" : 1227,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.hb.log.raw _"]} +{"step" : 88,"kind" : ["Info"],"goal_id" : 1226,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1228"]} +{"step" : 88,"kind" : ["Info"],"goal_id" : 1228,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X54 = ff"]} +{"step" : 88,"kind" : ["Info"],"goal_id" : 1226,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 89,"kind" : ["Info"],"goal_id" : 1227,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option elpi.hb.log.raw _"]} +{"step" : 89,"kind" : ["Info"],"goal_id" : 1227,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 89,"kind" : ["Info"],"goal_id" : 1227,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 89,"kind" : ["Info"],"goal_id" : 1227,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["with-logging","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) _)"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 283, column 0, character 11151:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 289, column 0, character 11419:"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 283, column 0, character 11151:","(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*))."]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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) _"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1229"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option log tt , X65 = tt ; get-option log.raw tt , X65 = ff"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1230"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1230,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1231"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1231,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) _"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1232"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1232,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.private.logger-close X66"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1233"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1233,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.intersperse coq.pp.spc X66 X67"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1234"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1234,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.pp->string (coq.pp.box (coq.pp.v 0) X67) X68"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1235"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1235,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.say (* \n X68 \n*)"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 91,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","get-option log tt , X65 = tt ; get-option log.raw tt , X65 = ff"]} +{"step" : 91,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 91,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 91,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 91,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := get-option log tt , X65 = tt"]} +{"step" : 91,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1236"]} +{"step" : 91,"kind" : ["Info"],"goal_id" : 1236,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option log tt , X65 = tt"]} +{"step" : 91,"kind" : ["Info"],"goal_id" : 1236,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 92,"kind" : ["Info"],"goal_id" : 1236,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","get-option log tt , X65 = tt"]} +{"step" : 92,"kind" : ["Info"],"goal_id" : 1236,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 92,"kind" : ["Info"],"goal_id" : 1236,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1237"]} +{"step" : 92,"kind" : ["Info"],"goal_id" : 1237,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option log tt"]} +{"step" : 92,"kind" : ["Info"],"goal_id" : 1236,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1238"]} +{"step" : 92,"kind" : ["Info"],"goal_id" : 1238,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X65 = tt"]} +{"step" : 92,"kind" : ["Info"],"goal_id" : 1236,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 93,"kind" : ["Info"],"goal_id" : 1237,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option log tt"]} +{"step" : 93,"kind" : ["Info"],"goal_id" : 1237,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 93,"kind" : ["Info"],"goal_id" : 1237,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 93,"kind" : ["Info"],"goal_id" : 1237,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 94,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","get-option log tt , X65 = tt ; get-option log.raw tt , X65 = ff"]} +{"step" : 94,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 94,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 94,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 94,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := get-option log.raw tt , X65 = ff"]} +{"step" : 94,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1239"]} +{"step" : 94,"kind" : ["Info"],"goal_id" : 1239,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option log.raw tt , X65 = ff"]} +{"step" : 94,"kind" : ["Info"],"goal_id" : 1239,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 95,"kind" : ["Info"],"goal_id" : 1239,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","get-option log.raw tt , X65 = ff"]} +{"step" : 95,"kind" : ["Info"],"goal_id" : 1239,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 95,"kind" : ["Info"],"goal_id" : 1239,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1240"]} +{"step" : 95,"kind" : ["Info"],"goal_id" : 1240,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option log.raw tt"]} +{"step" : 95,"kind" : ["Info"],"goal_id" : 1239,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1241"]} +{"step" : 95,"kind" : ["Info"],"goal_id" : 1241,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X65 = ff"]} +{"step" : 95,"kind" : ["Info"],"goal_id" : 1239,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 96,"kind" : ["Info"],"goal_id" : 1240,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option log.raw tt"]} +{"step" : 96,"kind" : ["Info"],"goal_id" : 1240,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 96,"kind" : ["Info"],"goal_id" : 1240,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 96,"kind" : ["Info"],"goal_id" : 1240,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 97,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["with-logging","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) _)"]} +{"step" : 97,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 97,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 289, column 0, character 11419:"]} +{"step" : 97,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 289, column 0, character 11419:","(with-logging A0) :- A0."]} +{"step" : 97,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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) _"]} +{"step" : 97,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1242"]} +{"step" : 97,"kind" : ["Info"],"goal_id" : 1242,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) _"]} +{"step" : 97,"kind" : ["Info"],"goal_id" : 1242,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 1242,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.declare-const","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) _"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 1242,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 1242,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 25, column 0, character 1064:"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 1242,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 25, column 0, character 1064:","(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20])."]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := _"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := arity X1"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 1242,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1243"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 1243,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 1243,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1243,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1243,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1243,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1243,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.assert-ok! (coq.elaborate-arity-skeleton (arity X1) _ X69) \n Definition type illtyped"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1243,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1244"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.assert-ok! (coq.elaborate-arity-skeleton (arity X1) _ X69) \n Definition type illtyped"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1245"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1245,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1246"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1246,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert-ok!","std.assert-ok! (coq.elaborate-arity-skeleton (arity X1) _ X69) \n Definition type illtyped"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!)."]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.elaborate-arity-skeleton (arity X1) _ X69"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := Definition type illtyped"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1247"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.elaborate-arity-skeleton (arity X1) _ X69 X92"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1248"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1248,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1249"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1249,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X92 = ok ;\n X92 = error X93 , std.fatal-error-w-data Definition type illtyped X93"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1250"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1250,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.elaborate-arity-skeleton","coq.elaborate-arity-skeleton (arity X1) _ X69 X92"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 363, column 0, character 15598:"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 363, column 0, character 15598:","(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3)."]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X1"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X69 := arity X94"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X92"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1251"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.elaborate-ty-skeleton X1 X95 X94 X92"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.elaborate-ty-skeleton","coq.elaborate-ty-skeleton X1 X95 X94 X92"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.elaborate-ty-skeleton"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1252"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1252,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X95 = typ «interleave_context.403»"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1253"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1253,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X94 = X96"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1254"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1254,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1255"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1255,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X92 = ok"]} +{"step" : 103,"kind" : ["Info"],"goal_id" : 1252,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X95 = typ «interleave_context.403»"]} +{"step" : 103,"kind" : ["Info"],"goal_id" : 1252,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 103,"kind" : ["Info"],"goal_id" : 1252,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 103,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X95 := typ «interleave_context.403»"]} +{"step" : 103,"kind" : ["Info"],"goal_id" : 1252,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 104,"kind" : ["Info"],"goal_id" : 1253,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X94 = X96"]} +{"step" : 104,"kind" : ["Info"],"goal_id" : 1253,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 104,"kind" : ["Info"],"goal_id" : 1253,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 104,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X94 := X96"]} +{"step" : 104,"kind" : ["Info"],"goal_id" : 1253,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 1254,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["declare-evar","declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 1254,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 1254,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"coq-builtin.elpi\", line 163, column 0, character 6258:"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 1254,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"coq-builtin.elpi\", line 163, column 0, character 6258:","(declare-evar A0 A1 A2 A3) :- (declare_constraint (declare-evar A0 A1 A2 A3) \n [A1])."]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X97"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := sort (typ «interleave_context.403»)"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X96"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 1254,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1256"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 1256,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["declare_constraint\n (declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)) [\n X97]"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 1256,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 106,"kind" : ["Info"],"goal_id" : 1256,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["declare_constraint","declare_constraint\n (declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)) [\n X97]"]} +{"step" : 106,"kind" : ["Info"],"goal_id" : 1256,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 106,"kind" : ["Info"],"goal_id" : 1256,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["declare_constraint"]} +{"step" : 106,"kind" : ["Info"],"goal_id" : 1256,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1257"]} +{"step" : 106,"kind" : ["Info"],"goal_id" : 1257,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)"]} +{"step" : 106,"kind" : ["Info"],"goal_id" : 1256,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 1257,"runtime_id" : 8,"name" : "user:CHR:try","payload" : ["File \"coq-builtin.elpi\", line 178, column 4, character 6801:"," \\ (declare-evar A0 A1 A2 A3) <=> (A0 => evar A1 A2 A3)"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 9,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 9,"name" : "user:assign","payload" : ["A1 := uvar frozen--1156 []"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 9,"name" : "user:assign","payload" : ["A2 := sort (typ «interleave_context.403»)"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 9,"name" : "user:assign","payload" : ["A3 := uvar frozen--1157 []"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 1259,"runtime_id" : 9,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1259,"runtime_id" : 9,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1259,"runtime_id" : 9,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1259,"runtime_id" : 9,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1259,"runtime_id" : 9,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1259,"runtime_id" : 9,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 1257,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1260"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 1260,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["_ => [] => evar X97 (sort (typ «interleave_context.403»)) X96"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 1257,"runtime_id" : 8,"name" : "user:CHR:rule-fired","payload" : ["File \"coq-builtin.elpi\", line 178, column 4, character 6801:"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 1257,"runtime_id" : 8,"name" : "user:CHR:rule-remove-constraints","payload" : ["1257"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:CHR:store:before","payload" : ["1257"," declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96) /* suspended on X97 */"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule","payload" : ["resume"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 1260,"runtime_id" : 8,"name" : "user:rule:resume:resumed","payload" : ["_ => [] => evar X97 (sort (typ «interleave_context.403»)) X96"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:resume","payload" : ["success"]} +{"step" : 108,"kind" : ["Info"],"goal_id" : 1260,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","_ => [] => evar X97 (sort (typ «interleave_context.403»)) X96"]} +{"step" : 108,"kind" : ["Info"],"goal_id" : 1260,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 108,"kind" : ["Info"],"goal_id" : 1260,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1261"]} +{"step" : 108,"kind" : ["Info"],"goal_id" : 1261,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["[] => evar X97 (sort (typ «interleave_context.403»)) X96"]} +{"step" : 108,"kind" : ["Info"],"goal_id" : 1261,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 109,"kind" : ["Info"],"goal_id" : 1261,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","[] => evar X97 (sort (typ «interleave_context.403»)) X96"]} +{"step" : 109,"kind" : ["Info"],"goal_id" : 1261,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 109,"kind" : ["Info"],"goal_id" : 1261,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1262"]} +{"step" : 109,"kind" : ["Info"],"goal_id" : 1262,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["evar X97 (sort (typ «interleave_context.403»)) X96"]} +{"step" : 109,"kind" : ["Info"],"goal_id" : 1262,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1262,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["evar","evar X97 (sort (typ «interleave_context.403»)) X96"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1262,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1262,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"coq-builtin.elpi\", line 193, column 0, character 7432:","File \"coq-builtin.elpi\", line 197, column 0, character 7585:"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1262,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"coq-builtin.elpi\", line 193, column 0, character 7432:","(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true)."]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X97"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := sort (typ «interleave_context.403»)"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X96"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1262,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1263"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1263,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1263,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1264"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1264,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (var X96) \n (declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]) true"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1263,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 111,"kind" : ["Info"],"goal_id" : 1263,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 111,"kind" : ["Info"],"goal_id" : 1263,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 111,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1262","File \"coq-builtin.elpi\", line 197, column 0, character 7585:","(evar _ _ _) :- ."]} +{"step" : 111,"kind" : ["Info"],"goal_id" : 1263,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1264,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (var X96) \n (declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]) true"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1264,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1264,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1264,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := var X96"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := declare_constraint\n (evar X97 (sort (typ «interleave_context.403»)) X96) [X97, X96]"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1264,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1265"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1265,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["var X96"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1265,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1266"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1266,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1265,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1267"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1267,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1265,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 113,"kind" : ["Info"],"goal_id" : 1265,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["var","var X96"]} +{"step" : 113,"kind" : ["Info"],"goal_id" : 1265,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 113,"kind" : ["Info"],"goal_id" : 1265,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["var"]} +{"step" : 113,"kind" : ["Info"],"goal_id" : 1265,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 114,"kind" : ["Info"],"goal_id" : 1266,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 114,"kind" : ["Info"],"goal_id" : 1266,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 114,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1264","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 114,"kind" : ["Info"],"goal_id" : 1266,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 115,"kind" : ["Info"],"goal_id" : 1267,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["declare_constraint","declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]"]} +{"step" : 115,"kind" : ["Info"],"goal_id" : 1267,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 115,"kind" : ["Info"],"goal_id" : 1267,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["declare_constraint"]} +{"step" : 115,"kind" : ["Info"],"goal_id" : 1267,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1268"]} +{"step" : 115,"kind" : ["Info"],"goal_id" : 1268,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["evar X97 (sort (typ «interleave_context.403»)) X96"]} +{"step" : 115,"kind" : ["Info"],"goal_id" : 1267,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 116,"kind" : ["Info"],"goal_id" : 1255,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X92 = ok"]} +{"step" : 116,"kind" : ["Info"],"goal_id" : 1255,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 116,"kind" : ["Info"],"goal_id" : 1255,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 116,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X92 := ok"]} +{"step" : 116,"kind" : ["Info"],"goal_id" : 1255,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 117,"kind" : ["Info"],"goal_id" : 1248,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 117,"kind" : ["Info"],"goal_id" : 1248,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 117,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1244","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:","(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned)."]} +{"step" : 117,"kind" : ["Info"],"goal_id" : 1248,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 118,"kind" : ["Info"],"goal_id" : 1249,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","ok = ok ;\n ok = error X93 , std.fatal-error-w-data Definition type illtyped X93"]} +{"step" : 118,"kind" : ["Info"],"goal_id" : 1249,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 118,"kind" : ["Info"],"goal_id" : 1249,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 118,"kind" : ["Info"],"goal_id" : 1249,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 118,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ok = ok"]} +{"step" : 118,"kind" : ["Info"],"goal_id" : 1249,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1269"]} +{"step" : 118,"kind" : ["Info"],"goal_id" : 1269,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["ok = ok"]} +{"step" : 118,"kind" : ["Info"],"goal_id" : 1269,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 119,"kind" : ["Info"],"goal_id" : 1269,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","ok = ok"]} +{"step" : 119,"kind" : ["Info"],"goal_id" : 1269,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 119,"kind" : ["Info"],"goal_id" : 1269,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 119,"kind" : ["Info"],"goal_id" : 1269,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 120,"kind" : ["Info"],"goal_id" : 1250,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 120,"kind" : ["Info"],"goal_id" : 1250,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 120,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1249","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 120,"kind" : ["Info"],"goal_id" : 1250,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 121,"kind" : ["Info"],"goal_id" : 1245,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 121,"kind" : ["Info"],"goal_id" : 1245,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 121,"kind" : ["Info"],"goal_id" : 1245,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1246,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1246,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1246,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1246,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.arity->term (arity (X96)) X70"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1246,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1270"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.arity->term (arity (X96)) X70"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1271"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1271,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1272"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1272,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 123,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.arity->term","coq.arity->term (arity (X96)) X70"]} +{"step" : 123,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 123,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 371, column 0, character 15907:"]} +{"step" : 123,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 371, column 0, character 15907:","(coq.arity->term (arity A0) A0) :- ."]} +{"step" : 123,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X96"]} +{"step" : 123,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X70 := X96"]} +{"step" : 123,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 124,"kind" : ["Info"],"goal_id" : 1271,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 124,"kind" : ["Info"],"goal_id" : 1271,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 124,"kind" : ["Info"],"goal_id" : 1271,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1272,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1272,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1272,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1272,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1272,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1273"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1274"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1274,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1275"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1275,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert-ok!","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"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!)."]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := Definition illtyped"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1276"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1277"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1277,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1278"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1278,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X98 = ok ; X98 = error X99 , std.fatal-error-w-data Definition illtyped X99"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1279"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1279,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.elaborate-skeleton","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"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.elaborate-skeleton"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1280"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1280,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X96 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1281"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1281,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X71 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1282"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1282,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X98 = ok"]} +{"step" : 128,"kind" : ["Info"],"goal_id" : 1280,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X96 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 128,"kind" : ["Info"],"goal_id" : 1280,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 128,"kind" : ["Info"],"goal_id" : 1280,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 128,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign:HO","payload" : ["X96 := app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 128,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign:resume","payload" : ["1268"]} +{"step" : 128,"kind" : ["Info"],"goal_id" : 1280,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 129,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule","payload" : ["resume"]} +{"step" : 129,"kind" : ["Info"],"goal_id" : 1268,"runtime_id" : 8,"name" : "user:rule:resume:resumed","payload" : ["evar X97 (sort (typ «interleave_context.403»)) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 129,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:resume","payload" : ["success"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1268,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["evar","evar X97 (sort (typ «interleave_context.403»)) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1268,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1268,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"coq-builtin.elpi\", line 193, column 0, character 7432:","File \"coq-builtin.elpi\", line 197, column 0, character 7585:"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1268,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"coq-builtin.elpi\", line 193, column 0, character 7432:","(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true)."]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X97"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := sort (typ «interleave_context.403»)"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1268,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1283"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1283,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1283,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1284"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1283,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 131,"kind" : ["Info"],"goal_id" : 1283,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 131,"kind" : ["Info"],"goal_id" : 1283,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 131,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1268","File \"coq-builtin.elpi\", line 197, column 0, character 7585:","(evar _ _ _) :- ."]} +{"step" : 131,"kind" : ["Info"],"goal_id" : 1283,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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»)]]"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1285"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1285,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1285,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1286"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1286,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1285,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1287"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1287,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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»)]]"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1285,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 133,"kind" : ["Info"],"goal_id" : 1285,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["var","var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 133,"kind" : ["Info"],"goal_id" : 1285,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 133,"kind" : ["Info"],"goal_id" : 1285,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["var"]} +{"step" : 133,"kind" : ["Info"],"goal_id" : 1285,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 134,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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"]} +{"step" : 134,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 134,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 134,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 134,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 134,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1288"]} +{"step" : 134,"kind" : ["Info"],"goal_id" : 1288,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 134,"kind" : ["Info"],"goal_id" : 1288,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 135,"kind" : ["Info"],"goal_id" : 1288,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 135,"kind" : ["Info"],"goal_id" : 1288,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 135,"kind" : ["Info"],"goal_id" : 1288,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 135,"kind" : ["Info"],"goal_id" : 1288,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 135,"kind" : ["Info"],"goal_id" : 1288,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 136,"kind" : ["Info"],"goal_id" : 1281,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X71 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 136,"kind" : ["Info"],"goal_id" : 1281,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 136,"kind" : ["Info"],"goal_id" : 1281,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 136,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X71 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 136,"kind" : ["Info"],"goal_id" : 1281,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 137,"kind" : ["Info"],"goal_id" : 1282,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X98 = ok"]} +{"step" : 137,"kind" : ["Info"],"goal_id" : 1282,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 137,"kind" : ["Info"],"goal_id" : 1282,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 137,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X98 := ok"]} +{"step" : 137,"kind" : ["Info"],"goal_id" : 1282,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 138,"kind" : ["Info"],"goal_id" : 1277,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 138,"kind" : ["Info"],"goal_id" : 1277,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 138,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1273","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:","(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned)."]} +{"step" : 138,"kind" : ["Info"],"goal_id" : 1277,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 139,"kind" : ["Info"],"goal_id" : 1278,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","ok = ok ; ok = error X99 , std.fatal-error-w-data Definition illtyped X99"]} +{"step" : 139,"kind" : ["Info"],"goal_id" : 1278,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 139,"kind" : ["Info"],"goal_id" : 1278,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 139,"kind" : ["Info"],"goal_id" : 1278,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 139,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ok = ok"]} +{"step" : 139,"kind" : ["Info"],"goal_id" : 1278,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1289"]} +{"step" : 139,"kind" : ["Info"],"goal_id" : 1289,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["ok = ok"]} +{"step" : 139,"kind" : ["Info"],"goal_id" : 1289,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 140,"kind" : ["Info"],"goal_id" : 1289,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","ok = ok"]} +{"step" : 140,"kind" : ["Info"],"goal_id" : 1289,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 140,"kind" : ["Info"],"goal_id" : 1289,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 140,"kind" : ["Info"],"goal_id" : 1289,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 141,"kind" : ["Info"],"goal_id" : 1279,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 141,"kind" : ["Info"],"goal_id" : 1279,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 141,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1278","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 141,"kind" : ["Info"],"goal_id" : 1279,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 142,"kind" : ["Info"],"goal_id" : 1274,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 142,"kind" : ["Info"],"goal_id" : 1274,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 142,"kind" : ["Info"],"goal_id" : 1274,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1275,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1275,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1275,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1275,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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))"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1275,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1290"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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))"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1291"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1291,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1292"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1292,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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))"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])\n = arity X72"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1293"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1293,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity X72"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1293,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1294"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1294,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1293,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1295"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1295,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1293,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 145,"kind" : ["Info"],"goal_id" : 1293,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity X72"]} +{"step" : 145,"kind" : ["Info"],"goal_id" : 1293,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 145,"kind" : ["Info"],"goal_id" : 1293,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 145,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X72 := app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 145,"kind" : ["Info"],"goal_id" : 1293,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 146,"kind" : ["Info"],"goal_id" : 1294,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 146,"kind" : ["Info"],"goal_id" : 1294,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 146,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1290","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 146,"kind" : ["Info"],"goal_id" : 1294,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 147,"kind" : ["Info"],"goal_id" : 1295,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","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]"]} +{"step" : 147,"kind" : ["Info"],"goal_id" : 1295,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 147,"kind" : ["Info"],"goal_id" : 1295,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1296"]} +{"step" : 147,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if-verbose (coq.say HB: skipping section opening)"]} +{"step" : 147,"kind" : ["Info"],"goal_id" : 1295,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1297"]} +{"step" : 147,"kind" : ["Info"],"goal_id" : 1297,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 147,"kind" : ["Info"],"goal_id" : 1295,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if-verbose","if-verbose (coq.say HB: skipping section opening)"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 51, column 0, character 1529:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 52, column 0, character 1576:"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 51, column 0, character 1529:","(if-verbose A0) :- (get-option verbose tt), (!), A0."]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.say HB: skipping section opening"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1298"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1298,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option verbose tt"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1298,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1299"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1299,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1298,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1300"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1300,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.say HB: skipping section opening"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1298,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 149,"kind" : ["Info"],"goal_id" : 1298,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option verbose tt"]} +{"step" : 149,"kind" : ["Info"],"goal_id" : 1298,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 149,"kind" : ["Info"],"goal_id" : 1298,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 149,"kind" : ["Info"],"goal_id" : 1298,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 150,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if-verbose","if-verbose (coq.say HB: skipping section opening)"]} +{"step" : 150,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 150,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 52, column 0, character 1576:"]} +{"step" : 150,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 52, column 0, character 1576:","(if-verbose _) :- ."]} +{"step" : 150,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 151,"kind" : ["Info"],"goal_id" : 1297,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 151,"kind" : ["Info"],"goal_id" : 1297,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 151,"kind" : ["Info"],"goal_id" : 1297,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 151,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X73 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 151,"kind" : ["Info"],"goal_id" : 1297,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 152,"kind" : ["Info"],"goal_id" : 1291,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 152,"kind" : ["Info"],"goal_id" : 1291,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 152,"kind" : ["Info"],"goal_id" : 1291,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1292,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1292,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1292,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1292,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1292,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1301"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1302"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1302,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1303"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1303,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert!","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"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 35, column 0, character 1155:"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 35, column 0, character 1155:","(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!)."]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := The type of the instance is not a factory"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1304"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1304,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1304,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1305"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1305,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1304,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 155,"kind" : ["Info"],"goal_id" : 1304,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","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)"]} +{"step" : 155,"kind" : ["Info"],"goal_id" : 1304,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 155,"kind" : ["Info"],"goal_id" : 1304,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 155,"kind" : ["Info"],"goal_id" : 1304,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 155,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78"]} +{"step" : 155,"kind" : ["Info"],"goal_id" : 1304,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1306"]} +{"step" : 155,"kind" : ["Info"],"goal_id" : 1306,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78"]} +{"step" : 155,"kind" : ["Info"],"goal_id" : 1306,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1306,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.safe-dest-app","coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1306,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1306,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 72, column 0, character 2783:","File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1306,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 72, column 0, character 2783:","(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3)."]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «IsSelfA'.axioms_»)"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (indt «nat»)]"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := global X77"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X78"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1306,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1307"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1307,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1307,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1308"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1308,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global X77) X100"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1307,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1309"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1309,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.append X100 [global (indt «nat»)] X78"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1307,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 157,"kind" : ["Info"],"goal_id" : 1307,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 157,"kind" : ["Info"],"goal_id" : 1307,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 157,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1306","File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:","(coq.safe-dest-app A0 A0 []) :- ."]} +{"step" : 157,"kind" : ["Info"],"goal_id" : 1307,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 158,"kind" : ["Info"],"goal_id" : 1308,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.safe-dest-app","coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global X77) X100"]} +{"step" : 158,"kind" : ["Info"],"goal_id" : 1308,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 158,"kind" : ["Info"],"goal_id" : 1308,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:"]} +{"step" : 158,"kind" : ["Info"],"goal_id" : 1308,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:","(coq.safe-dest-app A0 A0 []) :- ."]} +{"step" : 158,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «IsSelfA'.axioms_»)"]} +{"step" : 158,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X77 := indt «IsSelfA'.axioms_»"]} +{"step" : 158,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X100 := []"]} +{"step" : 158,"kind" : ["Info"],"goal_id" : 1308,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 159,"kind" : ["Info"],"goal_id" : 1309,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.append","std.append [] [global (indt «nat»)] X78"]} +{"step" : 159,"kind" : ["Info"],"goal_id" : 1309,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 159,"kind" : ["Info"],"goal_id" : 1309,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 81, column 0, character 2754:"]} +{"step" : 159,"kind" : ["Info"],"goal_id" : 1309,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 81, column 0, character 2754:","(std.append [] A0 A0) :- ."]} +{"step" : 159,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [global (indt «nat»)]"]} +{"step" : 159,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X78 := [global (indt «nat»)]"]} +{"step" : 159,"kind" : ["Info"],"goal_id" : 1309,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 160,"kind" : ["Info"],"goal_id" : 1305,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 160,"kind" : ["Info"],"goal_id" : 1305,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 160,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1304","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 160,"kind" : ["Info"],"goal_id" : 1305,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 161,"kind" : ["Info"],"goal_id" : 1302,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 161,"kind" : ["Info"],"goal_id" : 1302,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 161,"kind" : ["Info"],"goal_id" : 1302,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1303,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1303,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1303,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1303,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := factory-alias->gref (indt «IsSelfA'.axioms_») X79"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1303,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1310"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-alias->gref (indt «IsSelfA'.axioms_») X79"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1311"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1311,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1312"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1312,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-alias->gref","factory-alias->gref (indt «IsSelfA'.axioms_») X79"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 74, column 0, character 2385:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 74, column 0, character 2385:","(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!)."]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X79"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1313"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev X79 (indt «IsSelfA'.axioms_») _"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1314"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1314,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev X79 (indt «IsSelfA'.axioms_») _"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indt «HasA.axioms_»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «HasA.phant_axioms»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- ."]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indc «HasA.Axioms_»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «HasA.phant_Build»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indt «HasB.axioms_»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «HasB.phant_axioms»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- ."]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indc «HasB.Axioms_»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «HasB.phant_Build»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indt «IsSelfA.axioms_»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «IsSelfA.phant_axioms»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- ."]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indc «IsSelfA.Axioms_»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «IsSelfA.phant_Build»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indt «IsSelfA'.axioms_»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «IsSelfA'.phant_axioms»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- ."]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indc «IsSelfA'.Axioms_»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «IsSelfA'.phant_Build»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-alias->gref","factory-alias->gref (indt «IsSelfA'.axioms_») X79"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!)."]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indt «IsSelfA'.axioms_»"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1315"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev (indt «IsSelfA'.axioms_») _ _"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1316"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1316,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev (indt «IsSelfA'.axioms_») _ _"]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «HasA.axioms_»"]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «HasB.axioms_»"]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «IsSelfA.axioms_»"]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 167,"kind" : ["Info"],"goal_id" : 1316,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 167,"kind" : ["Info"],"goal_id" : 1316,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 167,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1310","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «A.axioms_») (indt «A.axioms_»)) :- ."]} +{"step" : 167,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1310","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «B.axioms_») (indt «B.axioms_»)) :- ."]} +{"step" : 167,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1310","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «SelfA.axioms_») (indt «SelfA.axioms_»)) :- ."]} +{"step" : 167,"kind" : ["Info"],"goal_id" : 1316,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 168,"kind" : ["Info"],"goal_id" : 1311,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 168,"kind" : ["Info"],"goal_id" : 1311,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 168,"kind" : ["Info"],"goal_id" : 1311,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1312,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1312,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1312,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1312,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.assert! (factory-nparams (indt «IsSelfA'.axioms_») X80) \n Not a factory synthesized by HB"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1312,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1317"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.assert! (factory-nparams (indt «IsSelfA'.axioms_») X80) \n Not a factory synthesized by HB"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1318"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1318,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1319"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1319,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert!","std.assert! (factory-nparams (indt «IsSelfA'.axioms_») X80) \n Not a factory synthesized by HB"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 35, column 0, character 1155:"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 35, column 0, character 1155:","(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!)."]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := factory-nparams (indt «IsSelfA'.axioms_») X80"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := Not a factory synthesized by HB"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1320"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1320,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1320,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1321"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1321,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1320,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 171,"kind" : ["Info"],"goal_id" : 1320,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","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)"]} +{"step" : 171,"kind" : ["Info"],"goal_id" : 1320,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 171,"kind" : ["Info"],"goal_id" : 1320,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 171,"kind" : ["Info"],"goal_id" : 1320,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 171,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := factory-nparams (indt «IsSelfA'.axioms_») X80"]} +{"step" : 171,"kind" : ["Info"],"goal_id" : 1320,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1322"]} +{"step" : 171,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-nparams (indt «IsSelfA'.axioms_») X80"]} +{"step" : 171,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-nparams","factory-nparams (indt «IsSelfA'.axioms_») X80"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «HasA.axioms_») 1) :- ."]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «HasA.axioms_»"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «A.axioms_») 1) :- ."]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «A.axioms_»"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «HasB.axioms_») 1) :- ."]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «HasB.axioms_»"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «B.axioms_») 1) :- ."]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «B.axioms_»"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «IsSelfA.axioms_») 0) :- ."]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «IsSelfA.axioms_»"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «SelfA.axioms_») 0) :- ."]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «SelfA.axioms_»"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «IsSelfA'.axioms_») 0) :- ."]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X80 := 0"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 173,"kind" : ["Info"],"goal_id" : 1321,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 173,"kind" : ["Info"],"goal_id" : 1321,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 173,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1320","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 173,"kind" : ["Info"],"goal_id" : 1321,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 174,"kind" : ["Info"],"goal_id" : 1318,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 174,"kind" : ["Info"],"goal_id" : 1318,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 174,"kind" : ["Info"],"goal_id" : 1318,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1319,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1319,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1319,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1319,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1319,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1323"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1324"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1324,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1325"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1325,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.hack-section-discharging","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"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 300, column 0, character 12925:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 301, column 0, character 12985:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 304, column 0, character 13219:"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 300, column 0, character 12925:","(instance.private.hack-section-discharging A0 A0) :- (current-mode no-builder), \n (!)."]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X81 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1326"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1326,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["current-mode no-builder"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1326,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1327"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1327,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1326,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 177,"kind" : ["Info"],"goal_id" : 1326,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["current-mode","current-mode no-builder"]} +{"step" : 177,"kind" : ["Info"],"goal_id" : 1326,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 177,"kind" : ["Info"],"goal_id" : 1326,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 177,"kind" : ["Info"],"goal_id" : 1326,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.hack-section-discharging","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"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 301, column 0, character 12985:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 304, column 0, character 13219:"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 301, column 0, character 12985:","(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))."]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X81"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1328"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["current-mode (builder-from _ X101 _ _)"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1329"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1329,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1330"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1330,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.assert-ok! (coq.typecheck X101 X102) TheFactory is illtyped (BUG)"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1331"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1331,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 179,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["current-mode","current-mode (builder-from _ X101 _ _)"]} +{"step" : 179,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 179,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 179,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 180,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.hack-section-discharging","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"]} +{"step" : 180,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 180,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 304, column 0, character 13219:"]} +{"step" : 180,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 304, column 0, character 13219:","(instance.private.hack-section-discharging A0 A0) :- ."]} +{"step" : 180,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 180,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X81 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 180,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 181,"kind" : ["Info"],"goal_id" : 1324,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 181,"kind" : ["Info"],"goal_id" : 1324,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 181,"kind" : ["Info"],"goal_id" : 1324,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1325,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1325,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1325,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1325,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1325,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1332"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1333"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1333,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1334"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1334,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.optimize-body","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"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 309, column 0, character 13433:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 314, column 0, character 13706:"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 309, column 0, character 13433:","(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)."]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := «IsSelfA'.phant_Build»"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X82"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1335"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev _ (const «IsSelfA'.phant_Build») _ ;\n coq.gref->id (const «IsSelfA'.phant_Build») X103 , rex_match phant_ X103"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1336"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1336,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1337"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1337,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.env.const «IsSelfA'.phant_Build» (some X104) _"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1338"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1338,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["hd-beta X104 \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1339"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1339,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["unwind X105 X106 X82"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 184,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","phant-abbrev _ (const «IsSelfA'.phant_Build») _ ;\n coq.gref->id (const «IsSelfA'.phant_Build») X103 , rex_match phant_ X103"]} +{"step" : 184,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 184,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 184,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 184,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := phant-abbrev _ (const «IsSelfA'.phant_Build») _"]} +{"step" : 184,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1340"]} +{"step" : 184,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev _ (const «IsSelfA'.phant_Build») _"]} +{"step" : 184,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev _ (const «IsSelfA'.phant_Build») _"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify const «IsSelfA'.phant_Build» with const «HasA.phant_axioms»"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- ."]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify const «IsSelfA'.phant_Build» with const «HasA.phant_Build»"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify const «IsSelfA'.phant_Build» with const «HasB.phant_axioms»"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- ."]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify const «IsSelfA'.phant_Build» with const «HasB.phant_Build»"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify const «IsSelfA'.phant_Build» with const «IsSelfA.phant_axioms»"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- ."]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify const «IsSelfA'.phant_Build» with const «IsSelfA.phant_Build»"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify const «IsSelfA'.phant_Build» with const «IsSelfA'.phant_axioms»"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- ."]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 186,"kind" : ["Info"],"goal_id" : 1336,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 186,"kind" : ["Info"],"goal_id" : 1336,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 186,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1335","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 186,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1332","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 314, column 0, character 13706:","(instance.private.optimize-body A0 A0) :- ."]} +{"step" : 186,"kind" : ["Info"],"goal_id" : 1336,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 187,"kind" : ["Info"],"goal_id" : 1337,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.env.const","coq.env.const «IsSelfA'.phant_Build» (some X104) _"]} +{"step" : 187,"kind" : ["Info"],"goal_id" : 1337,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 187,"kind" : ["Info"],"goal_id" : 1337,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.env.const"]} +{"step" : 187,"kind" : ["Info"],"goal_id" : 1337,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 187,"kind" : ["Info"],"goal_id" : 1337,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1341"]} +{"step" : 187,"kind" : ["Info"],"goal_id" : 1341,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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])"]} +{"step" : 188,"kind" : ["Info"],"goal_id" : 1341,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","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])"]} +{"step" : 188,"kind" : ["Info"],"goal_id" : 1341,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 188,"kind" : ["Info"],"goal_id" : 1341,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 188,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 188,"kind" : ["Info"],"goal_id" : 1341,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1338,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["hd-beta","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"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1338,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1338,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 93, column 0, character 3492:","File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1338,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 93, column 0, character 3492:","(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4)."]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0 \\\nfun `a` c0 c1 \\\n fun `b` (prod `_` c0 c2 \\ c0) c2 \\\n app [global (indc «IsSelfA'.Axioms_»), c0, c1, c2]"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := global (indt «nat»)"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X105"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X106"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1338,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1342"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1342,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1342,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1343"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1343,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1342,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 190,"kind" : ["Info"],"goal_id" : 1342,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 190,"kind" : ["Info"],"goal_id" : 1342,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 190,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1338","File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:","(hd-beta A0 A1 A0 A1) :- ."]} +{"step" : 190,"kind" : ["Info"],"goal_id" : 1342,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1343,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["hd-beta","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"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1343,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1343,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 93, column 0, character 3492:","File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1343,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 93, column 0, character 3492:","(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4)."]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0 \\\nfun `b` (prod `_` (global (indt «nat»)) c1 \\ global (indt «nat»)) c1 \\\n app [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), c0, c1]"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := global (indc «O»)"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := [fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X105"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X106"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1343,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1344"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1344,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1344,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1345"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1345,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1344,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 192,"kind" : ["Info"],"goal_id" : 1344,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 192,"kind" : ["Info"],"goal_id" : 1344,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 192,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1343","File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:","(hd-beta A0 A1 A0 A1) :- ."]} +{"step" : 192,"kind" : ["Info"],"goal_id" : 1344,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1345,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["hd-beta","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"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1345,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1345,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 93, column 0, character 3492:","File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1345,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 93, column 0, character 3492:","(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4)."]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0 \\\napp\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), c0]"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := fun `x` (global (indt «nat»)) c0 \\ c0"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := []"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X105"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X106"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1345,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1346"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1346,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1346,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1347"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1347,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1346,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 194,"kind" : ["Info"],"goal_id" : 1346,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 194,"kind" : ["Info"],"goal_id" : 1346,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 194,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1345","File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:","(hd-beta A0 A1 A0 A1) :- ."]} +{"step" : 194,"kind" : ["Info"],"goal_id" : 1346,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1347,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["hd-beta","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"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1347,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1347,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 92, column 0, character 3424:","File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1347,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 92, column 0, character 3424:","(hd-beta (app [A0 | A1]) A2 A3 A4) :- (!), (std.append A1 A2 A5), \n (hd-beta A0 A5 A3 A4)."]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indc «IsSelfA'.Axioms_»)"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := []"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X105"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X106"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1347,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1348"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1348,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1348,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1349"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1349,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.append\n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] [] X107"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1348,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1350"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1350,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["hd-beta (global (indc «IsSelfA'.Axioms_»)) X107 X105 X106"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1348,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 196,"kind" : ["Info"],"goal_id" : 1348,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 196,"kind" : ["Info"],"goal_id" : 1348,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 196,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1347","File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:","(hd-beta A0 A1 A0 A1) :- ."]} +{"step" : 196,"kind" : ["Info"],"goal_id" : 1348,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 1349,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.append","std.append\n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] [] X107"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 1349,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 1349,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 80, column 0, character 2711:"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 1349,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 80, column 0, character 2711:","(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3)."]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «nat»)"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := []"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X107 := [global (indt «nat») | X108]"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 1349,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1351"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 1351,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.append [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0] [] \n X108"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 1351,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 1351,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.append","std.append [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0] [] \n X108"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 1351,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 1351,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 80, column 0, character 2711:"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 1351,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 80, column 0, character 2711:","(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3)."]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indc «O»)"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := []"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X108 := [global (indc «O») | X109]"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 1351,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1352"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 1352,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.append [fun `x` (global (indt «nat»)) c0 \\ c0] [] X109"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 1352,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 1352,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.append","std.append [fun `x` (global (indt «nat»)) c0 \\ c0] [] X109"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 1352,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 1352,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 80, column 0, character 2711:"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 1352,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 80, column 0, character 2711:","(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3)."]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := fun `x` (global (indt «nat»)) c0 \\ c0"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := []"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X109 := [fun `x` (global (indt «nat»)) c0 \\ c0 | X110]"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 1352,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1353"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 1353,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.append [] [] X110"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 1353,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 200,"kind" : ["Info"],"goal_id" : 1353,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.append","std.append [] [] X110"]} +{"step" : 200,"kind" : ["Info"],"goal_id" : 1353,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 200,"kind" : ["Info"],"goal_id" : 1353,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 81, column 0, character 2754:"]} +{"step" : 200,"kind" : ["Info"],"goal_id" : 1353,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 81, column 0, character 2754:","(std.append [] A0 A0) :- ."]} +{"step" : 200,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 200,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X110 := []"]} +{"step" : 200,"kind" : ["Info"],"goal_id" : 1353,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 1350,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["hd-beta","hd-beta (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106"]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 1350,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 1350,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:"]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 1350,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:","(hd-beta A0 A1 A0 A1) :- ."]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indc «IsSelfA'.Axioms_»)"]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X105 := global (indc «IsSelfA'.Axioms_»)"]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X106 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 1350,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 1339,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["unwind","unwind (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 1339,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 1339,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 22, column 0, character 758:"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 1339,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 22, column 0, character 758:","(unwind A0 A1 A2) :- (if (var A0) (coq.mk-app-uvar A0 A1 A2) \n (coq.mk-app A0 A1 A2))."]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indc «IsSelfA'.Axioms_»)"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X82"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 1339,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1354"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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)"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := var (global (indc «IsSelfA'.Axioms_»))"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1355"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1355,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["var (global (indc «IsSelfA'.Axioms_»))"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1355,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1356"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1356,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1355,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1357"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1357,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.mk-app-uvar (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1355,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 204,"kind" : ["Info"],"goal_id" : 1355,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["var","var (global (indc «IsSelfA'.Axioms_»))"]} +{"step" : 204,"kind" : ["Info"],"goal_id" : 1355,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 204,"kind" : ["Info"],"goal_id" : 1355,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["var"]} +{"step" : 204,"kind" : ["Info"],"goal_id" : 1355,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 205,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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)"]} +{"step" : 205,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 205,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 205,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 205,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.mk-app (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82"]} +{"step" : 205,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1358"]} +{"step" : 205,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.mk-app (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82"]} +{"step" : 205,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.mk-app","coq.mk-app (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 77, column 0, character 2958:","File \"/build/source/./elpi/coq-lib.elpi\", line 81, column 0, character 3175:"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 77, column 0, character 2958:","(coq.mk-app A0 [] A0) :- (!)."]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indc «IsSelfA'.Axioms_»)"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["match\n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] with []"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 81, column 0, character 3175:","(coq.mk-app A0 A1 (app [A0 | A1])) :- ."]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indc «IsSelfA'.Axioms_»)"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X82 := app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 207,"kind" : ["Info"],"goal_id" : 1333,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 207,"kind" : ["Info"],"goal_id" : 1333,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 207,"kind" : ["Info"],"goal_id" : 1333,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1334,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1334,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1334,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1334,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _)"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1334,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1359"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _)"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1360"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1360,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1361"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1361,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _)"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := _ = _"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := , (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1362"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1362,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["_ = _"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1362,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1363"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1363,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1362,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1364"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1364,"runtime_id" : 8,"name" : "user:newgoal","payload" : [", (new_int X83) (std.any->string X83 X84) (X85 is HB_unnamed_factory_ ^ X84)"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1362,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 210,"kind" : ["Info"],"goal_id" : 1362,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","_ = _"]} +{"step" : 210,"kind" : ["Info"],"goal_id" : 1362,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 210,"kind" : ["Info"],"goal_id" : 1362,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 210,"kind" : ["Info"],"goal_id" : 1362,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 211,"kind" : ["Info"],"goal_id" : 1363,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 211,"kind" : ["Info"],"goal_id" : 1363,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 211,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1359","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 211,"kind" : ["Info"],"goal_id" : 1363,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1364,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",",", (new_int X83) (std.any->string X83 X84) (X85 is HB_unnamed_factory_ ^ X84)"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1364,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1364,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1365"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1365,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["new_int X83"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1364,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1366"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1366,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.any->string X83 X84"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1364,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1367"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1367,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X85 is HB_unnamed_factory_ ^ X84"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1364,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 213,"kind" : ["Info"],"goal_id" : 1365,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["new_int","new_int X83"]} +{"step" : 213,"kind" : ["Info"],"goal_id" : 1365,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 213,"kind" : ["Info"],"goal_id" : 1365,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["new_int"]} +{"step" : 213,"kind" : ["Info"],"goal_id" : 1365,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 213,"kind" : ["Info"],"goal_id" : 1365,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1368"]} +{"step" : 213,"kind" : ["Info"],"goal_id" : 1368,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X83 = 27"]} +{"step" : 214,"kind" : ["Info"],"goal_id" : 1368,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X83 = 27"]} +{"step" : 214,"kind" : ["Info"],"goal_id" : 1368,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 214,"kind" : ["Info"],"goal_id" : 1368,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 214,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X83 := 27"]} +{"step" : 214,"kind" : ["Info"],"goal_id" : 1368,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 1366,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.any->string","std.any->string 27 X84"]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 1366,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 1366,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 275, column 0, character 9167:"]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 1366,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 275, column 0, character 9167:","(std.any->string A0 A1) :- (term_to_string A0 A1)."]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := 27"]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X84"]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 1366,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1369"]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 1369,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["term_to_string 27 X84"]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 1369,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 216,"kind" : ["Info"],"goal_id" : 1369,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["term_to_string","term_to_string 27 X84"]} +{"step" : 216,"kind" : ["Info"],"goal_id" : 1369,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 216,"kind" : ["Info"],"goal_id" : 1369,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["term_to_string"]} +{"step" : 216,"kind" : ["Info"],"goal_id" : 1369,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 216,"kind" : ["Info"],"goal_id" : 1369,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1370"]} +{"step" : 216,"kind" : ["Info"],"goal_id" : 1370,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X84 = 27"]} +{"step" : 217,"kind" : ["Info"],"goal_id" : 1370,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X84 = 27"]} +{"step" : 217,"kind" : ["Info"],"goal_id" : 1370,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 217,"kind" : ["Info"],"goal_id" : 1370,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 217,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X84 := 27"]} +{"step" : 217,"kind" : ["Info"],"goal_id" : 1370,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 218,"kind" : ["Info"],"goal_id" : 1367,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["is","X85 is HB_unnamed_factory_ ^ 27"]} +{"step" : 218,"kind" : ["Info"],"goal_id" : 1367,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 218,"kind" : ["Info"],"goal_id" : 1367,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 77, column 0, character 1165:"]} +{"step" : 218,"kind" : ["Info"],"goal_id" : 1367,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 77, column 0, character 1165:","(A0 is A1) :- (calc A1 A0)."]} +{"step" : 218,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X85"]} +{"step" : 218,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := HB_unnamed_factory_ ^ 27"]} +{"step" : 218,"kind" : ["Info"],"goal_id" : 1367,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1371"]} +{"step" : 218,"kind" : ["Info"],"goal_id" : 1371,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["calc (HB_unnamed_factory_ ^ 27) X85"]} +{"step" : 218,"kind" : ["Info"],"goal_id" : 1371,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 219,"kind" : ["Info"],"goal_id" : 1371,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["calc","calc (HB_unnamed_factory_ ^ 27) X85"]} +{"step" : 219,"kind" : ["Info"],"goal_id" : 1371,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 219,"kind" : ["Info"],"goal_id" : 1371,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["calc"]} +{"step" : 219,"kind" : ["Info"],"goal_id" : 1371,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 219,"kind" : ["Info"],"goal_id" : 1371,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1372"]} +{"step" : 219,"kind" : ["Info"],"goal_id" : 1372,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X85 = HB_unnamed_factory_27"]} +{"step" : 220,"kind" : ["Info"],"goal_id" : 1372,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X85 = HB_unnamed_factory_27"]} +{"step" : 220,"kind" : ["Info"],"goal_id" : 1372,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 220,"kind" : ["Info"],"goal_id" : 1372,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 220,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X85 := HB_unnamed_factory_27"]} +{"step" : 220,"kind" : ["Info"],"goal_id" : 1372,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 221,"kind" : ["Info"],"goal_id" : 1360,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 221,"kind" : ["Info"],"goal_id" : 1360,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 221,"kind" : ["Info"],"goal_id" : 1360,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1361,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1361,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1361,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1361,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1361,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1373"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1374"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1374,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1375"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1375,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.coq.env.add-const-noimplicits-failondup","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"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 59, column 0, character 2355:"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 59, column 0, character 2355:","(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 [[]]])."]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := HB_unnamed_factory_27"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := ff"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X86"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1376"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 1376,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) [[]]]"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 1376,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1376,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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) [[]]]"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1376,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1376,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1376,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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) [[]]]"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1376,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1377"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1378"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1378,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1379"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1379,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) [[]]]"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]))"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1380"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]))"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1381"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1381,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1382"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1382,"runtime_id" : 8,"name" : "user:newgoal","payload" : [",\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)"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["not","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]))"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 52, column 0, character 609:","File \"elpi-builtin.elpi\", line 54, column 0, character 631:"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 52, column 0, character 609:","(not A0) :- A0, (!), fail."]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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])"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1383"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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])"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1384"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1384,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1385"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1385,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["fail"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 227,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","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])"]} +{"step" : 227,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 227,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 227,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 227,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 227,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1386"]} +{"step" : 227,"kind" : ["Info"],"goal_id" : 1386,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["ground_term (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 227,"kind" : ["Info"],"goal_id" : 1386,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 228,"kind" : ["Info"],"goal_id" : 1386,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["ground_term","ground_term (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 228,"kind" : ["Info"],"goal_id" : 1386,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 228,"kind" : ["Info"],"goal_id" : 1386,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["ground_term"]} +{"step" : 228,"kind" : ["Info"],"goal_id" : 1386,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 229,"kind" : ["Info"],"goal_id" : 1384,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 229,"kind" : ["Info"],"goal_id" : 1384,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 229,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1383","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 229,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1380","File \"elpi-builtin.elpi\", line 54, column 0, character 631:","(not _) :- ."]} +{"step" : 229,"kind" : ["Info"],"goal_id" : 1384,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 230,"kind" : ["Info"],"goal_id" : 1385,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["fail","fail"]} +{"step" : 230,"kind" : ["Info"],"goal_id" : 1385,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 230,"kind" : ["Info"],"goal_id" : 1385,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 230,"kind" : ["Info"],"goal_id" : 1385,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 231,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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"]} +{"step" : 231,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 231,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 231,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 231,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 231,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1387"]} +{"step" : 231,"kind" : ["Info"],"goal_id" : 1387,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 231,"kind" : ["Info"],"goal_id" : 1387,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 232,"kind" : ["Info"],"goal_id" : 1387,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 232,"kind" : ["Info"],"goal_id" : 1387,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 232,"kind" : ["Info"],"goal_id" : 1387,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 232,"kind" : ["Info"],"goal_id" : 1387,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 232,"kind" : ["Info"],"goal_id" : 1387,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 233,"kind" : ["Info"],"goal_id" : 1378,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 233,"kind" : ["Info"],"goal_id" : 1378,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 233,"kind" : ["Info"],"goal_id" : 1378,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1379,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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) [[]]]"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1379,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1379,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1379,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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) [[]]]"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1379,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1388"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1389"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1389,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1390"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1390,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) [[]]]"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 235,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.env.add-const","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"]} +{"step" : 235,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 235,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.env.add-const"]} +{"step" : 235,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 235,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1391"]} +{"step" : 235,"kind" : ["Info"],"goal_id" : 1391,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X86 = «HB_unnamed_factory_27»"]} +{"step" : 236,"kind" : ["Info"],"goal_id" : 1391,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X86 = «HB_unnamed_factory_27»"]} +{"step" : 236,"kind" : ["Info"],"goal_id" : 1391,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 236,"kind" : ["Info"],"goal_id" : 1391,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 236,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X86 := «HB_unnamed_factory_27»"]} +{"step" : 236,"kind" : ["Info"],"goal_id" : 1391,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 237,"kind" : ["Info"],"goal_id" : 1389,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 237,"kind" : ["Info"],"goal_id" : 1389,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 237,"kind" : ["Info"],"goal_id" : 1389,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1390,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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») [[]]]"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1390,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1390,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1390,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := log.coq.env.add-location (const «HB_unnamed_factory_27»)"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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») [[]]]"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1390,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1392"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.coq.env.add-location (const «HB_unnamed_factory_27»)"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1393"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1393,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1394"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1394,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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») [[]]]"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 239,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.coq.env.add-location","log.coq.env.add-location (const «HB_unnamed_factory_27»)"]} +{"step" : 239,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 239,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 21, column 0, character 831:"]} +{"step" : 239,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 21, column 0, character 831:","(log.coq.env.add-location A0) :- (if (get-option elpi.loc A1) \n (acc-clause library (decl-location A0 A1)) \n true)."]} +{"step" : 239,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := const «HB_unnamed_factory_27»"]} +{"step" : 239,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1395"]} +{"step" : 239,"kind" : ["Info"],"goal_id" : 1395,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (get-option elpi.loc X114) \n (acc-clause library (decl-location (const «HB_unnamed_factory_27») X114)) \n true"]} +{"step" : 239,"kind" : ["Info"],"goal_id" : 1395,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1395,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (get-option elpi.loc X114) \n (acc-clause library (decl-location (const «HB_unnamed_factory_27») X114)) \n true"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1395,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1395,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1395,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := get-option elpi.loc X114"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := acc-clause library \n (decl-location (const «HB_unnamed_factory_27») X114)"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1395,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1396"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.loc X114"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1397"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1397,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1398"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1398,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["acc-clause library (decl-location (const «HB_unnamed_factory_27») X114)"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 241,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option elpi.loc X114"]} +{"step" : 241,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 241,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:74)\", line 1, column 0, character 0:"]} +{"step" : 241,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:74)\", line 1, column 0, character 0:","(get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:) :- ."]} +{"step" : 241,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X114 := File \"(stdin)\", line 1, column 2, character 3:"]} +{"step" : 241,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 242,"kind" : ["Info"],"goal_id" : 1397,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 242,"kind" : ["Info"],"goal_id" : 1397,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 242,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1395","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 242,"kind" : ["Info"],"goal_id" : 1397,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 1398,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["acc-clause","acc-clause library \n (decl-location (const «HB_unnamed_factory_27») \n File \"(stdin)\", line 1, column 2, character 3:)"]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 1398,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 1398,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 75, column 0, character 2237:"]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 1398,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 75, column 0, character 2237:","(acc-clause A0 A1) :- (coq.elpi.accumulate A0 hb.db (clause _ _ A1))."]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := library"]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := decl-location (const «HB_unnamed_factory_27») \n File \"(stdin)\", line 1, column 2, character 3:"]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 1398,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1399"]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 1399,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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:))"]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 1399,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 244,"kind" : ["Info"],"goal_id" : 1399,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.elpi.accumulate","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:))"]} +{"step" : 244,"kind" : ["Info"],"goal_id" : 1399,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 244,"kind" : ["Info"],"goal_id" : 1399,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.elpi.accumulate"]} +{"step" : 244,"kind" : ["Info"],"goal_id" : 1399,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 245,"kind" : ["Info"],"goal_id" : 1393,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 245,"kind" : ["Info"],"goal_id" : 1393,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 245,"kind" : ["Info"],"goal_id" : 1393,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1394,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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») [[]]]"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1394,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1394,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1394,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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»)]))"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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») [[]]]"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1394,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1400"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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»)]))"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1401"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1401,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1402"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1402,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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») [[]]]"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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»)]))"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X113 = none"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1403"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1403,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1403,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1404"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1404,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1403,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1405"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1405,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X113 = none"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1403,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 248,"kind" : ["Info"],"goal_id" : 1403,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["var","var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 248,"kind" : ["Info"],"goal_id" : 1403,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 248,"kind" : ["Info"],"goal_id" : 1403,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["var"]} +{"step" : 248,"kind" : ["Info"],"goal_id" : 1403,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 249,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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»)]))"]} +{"step" : 249,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 249,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 249,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 249,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 249,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1406"]} +{"step" : 249,"kind" : ["Info"],"goal_id" : 1406,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X113 = some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 249,"kind" : ["Info"],"goal_id" : 1406,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 250,"kind" : ["Info"],"goal_id" : 1406,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X113 = some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 250,"kind" : ["Info"],"goal_id" : 1406,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 250,"kind" : ["Info"],"goal_id" : 1406,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 250,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X113 := some\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 250,"kind" : ["Info"],"goal_id" : 1406,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 251,"kind" : ["Info"],"goal_id" : 1401,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 251,"kind" : ["Info"],"goal_id" : 1401,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 251,"kind" : ["Info"],"goal_id" : 1401,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1402,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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») [[]]]"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1402,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1402,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1402,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]))"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1402,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1407"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]))"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1408"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1408,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1409"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1409,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.private.log-vernac","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]))"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 291, column 0, character 11441:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 294, column 0, character 11623:"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 291, column 0, character 11441:","(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)."]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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])"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1410"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.private.logger X115 X116"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1411"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1411,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1412"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1412,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (X116 = tt) (X117 = []) (X117 = [get-option coq:pp all])"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1413"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1413,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1414"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1414,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.private.logger-extend X115 X118"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 254,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.private.logger","log.private.logger X115 X116"]} +{"step" : 254,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 254,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 254,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 255,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.private.log-vernac","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]))"]} +{"step" : 255,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 255,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 294, column 0, character 11623:"]} +{"step" : 255,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 294, column 0, character 11623:","(log.private.log-vernac _) :- ."]} +{"step" : 255,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 256,"kind" : ["Info"],"goal_id" : 1408,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 256,"kind" : ["Info"],"goal_id" : 1408,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 256,"kind" : ["Info"],"goal_id" : 1408,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1409,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do!\n [get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1409,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1409,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1409,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1409,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1415"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1415,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1415,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1416"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1416,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1415,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1417"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1417,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! []"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1415,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 258,"kind" : ["Info"],"goal_id" : 1415,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"]} +{"step" : 258,"kind" : ["Info"],"goal_id" : 1415,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 258,"kind" : ["Info"],"goal_id" : 1415,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1418"]} +{"step" : 258,"kind" : ["Info"],"goal_id" : 1418,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"]} +{"step" : 258,"kind" : ["Info"],"goal_id" : 1418,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 1418,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.coq.arguments.set-implicit","log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 1418,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 1418,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 14, column 0, character 592:"]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 1418,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 14, column 0, character 592:","(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))])."]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := const «HB_unnamed_factory_27»"]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [[]]"]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 1418,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1419"]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 1419,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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 [[]]))]"]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 1419,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1419,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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 [[]]))]"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1419,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1419,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1419,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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 [[]]))]"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1419,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1420"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1420,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1420,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1421"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1421,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1420,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1422"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1422,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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 [[]]))]"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1420,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 261,"kind" : ["Info"],"goal_id" : 1420,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.arguments.set-implicit","coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"]} +{"step" : 261,"kind" : ["Info"],"goal_id" : 1420,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 261,"kind" : ["Info"],"goal_id" : 1420,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.arguments.set-implicit"]} +{"step" : 261,"kind" : ["Info"],"goal_id" : 1420,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 262,"kind" : ["Info"],"goal_id" : 1421,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 262,"kind" : ["Info"],"goal_id" : 1421,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 262,"kind" : ["Info"],"goal_id" : 1421,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1422,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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 [[]]))]"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1422,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1422,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1422,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := if (get-option coq:locality local) (X119 = tt) (X119 = ff)"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [(coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit X119 X120 [[]]))]"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1422,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1423"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (get-option coq:locality local) (X119 = tt) (X119 = ff)"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1424"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1424,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1425"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1425,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [(coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit X119 X120 [[]]))]"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (get-option coq:locality local) (X119 = tt) (X119 = ff)"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := get-option coq:locality local"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X119 = tt"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1426"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option coq:locality local"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1427"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1427,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1428"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1428,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X119 = tt"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 265,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option coq:locality local"]} +{"step" : 265,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 265,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:258)\", line 1, column 0, character 0:"]} +{"step" : 265,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:258)\", line 1, column 0, character 0:","(get-option coq:locality local) :- ."]} +{"step" : 265,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 266,"kind" : ["Info"],"goal_id" : 1427,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 266,"kind" : ["Info"],"goal_id" : 1427,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 266,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1423","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 266,"kind" : ["Info"],"goal_id" : 1427,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 267,"kind" : ["Info"],"goal_id" : 1428,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X119 = tt"]} +{"step" : 267,"kind" : ["Info"],"goal_id" : 1428,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 267,"kind" : ["Info"],"goal_id" : 1428,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 267,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X119 := tt"]} +{"step" : 267,"kind" : ["Info"],"goal_id" : 1428,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 268,"kind" : ["Info"],"goal_id" : 1424,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 268,"kind" : ["Info"],"goal_id" : 1424,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 268,"kind" : ["Info"],"goal_id" : 1424,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1425,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do!\n [(coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]]))]"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1425,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1425,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1425,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]])"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1425,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1429"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]])"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1430"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1430,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1431"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1431,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! []"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 270,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]])"]} +{"step" : 270,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 270,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1432"]} +{"step" : 270,"kind" : ["Info"],"goal_id" : 1432,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.gref->id (const «HB_unnamed_factory_27») X120"]} +{"step" : 270,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1433"]} +{"step" : 270,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]])"]} +{"step" : 270,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 271,"kind" : ["Info"],"goal_id" : 1432,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.gref->id","coq.gref->id (const «HB_unnamed_factory_27») X120"]} +{"step" : 271,"kind" : ["Info"],"goal_id" : 1432,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 271,"kind" : ["Info"],"goal_id" : 1432,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.gref->id"]} +{"step" : 271,"kind" : ["Info"],"goal_id" : 1432,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 271,"kind" : ["Info"],"goal_id" : 1432,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1434"]} +{"step" : 271,"kind" : ["Info"],"goal_id" : 1434,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X120 = HB_unnamed_factory_27"]} +{"step" : 272,"kind" : ["Info"],"goal_id" : 1434,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X120 = HB_unnamed_factory_27"]} +{"step" : 272,"kind" : ["Info"],"goal_id" : 1434,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 272,"kind" : ["Info"],"goal_id" : 1434,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 272,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X120 := HB_unnamed_factory_27"]} +{"step" : 272,"kind" : ["Info"],"goal_id" : 1434,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.private.log-vernac","log.private.log-vernac\n (log.private.coq.vernac.implicit tt HB_unnamed_factory_27 [[]])"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 291, column 0, character 11441:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 294, column 0, character 11623:"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 291, column 0, character 11441:","(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)."]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := log.private.coq.vernac.implicit tt HB_unnamed_factory_27 [[]]"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1435"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.private.logger X121 X122"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1436"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1436,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1437"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1437,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (X122 = tt) (X123 = []) (X123 = [get-option coq:pp all])"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1438"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1438,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X123 =>\n log.private.coq.vernac->pp\n [log.private.coq.vernac.implicit tt HB_unnamed_factory_27 [[]]] X124"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1439"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1439,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.private.logger-extend X121 X124"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 274,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.private.logger","log.private.logger X121 X122"]} +{"step" : 274,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 274,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 274,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 275,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.private.log-vernac","log.private.log-vernac\n (log.private.coq.vernac.implicit tt HB_unnamed_factory_27 [[]])"]} +{"step" : 275,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 275,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 294, column 0, character 11623:"]} +{"step" : 275,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 294, column 0, character 11623:","(log.private.log-vernac _) :- ."]} +{"step" : 275,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 276,"kind" : ["Info"],"goal_id" : 1430,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 276,"kind" : ["Info"],"goal_id" : 1430,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 276,"kind" : ["Info"],"goal_id" : 1430,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 277,"kind" : ["Info"],"goal_id" : 1431,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do! []"]} +{"step" : 277,"kind" : ["Info"],"goal_id" : 1431,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 277,"kind" : ["Info"],"goal_id" : 1431,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 255, column 0, character 8595:"]} +{"step" : 277,"kind" : ["Info"],"goal_id" : 1431,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 255, column 0, character 8595:","(std.do! []) :- ."]} +{"step" : 277,"kind" : ["Info"],"goal_id" : 1431,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 278,"kind" : ["Info"],"goal_id" : 1416,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 278,"kind" : ["Info"],"goal_id" : 1416,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 278,"kind" : ["Info"],"goal_id" : 1416,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 279,"kind" : ["Info"],"goal_id" : 1417,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do! []"]} +{"step" : 279,"kind" : ["Info"],"goal_id" : 1417,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 279,"kind" : ["Info"],"goal_id" : 1417,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 255, column 0, character 8595:"]} +{"step" : 279,"kind" : ["Info"],"goal_id" : 1417,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 255, column 0, character 8595:","(std.do! []) :- ."]} +{"step" : 279,"kind" : ["Info"],"goal_id" : 1417,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 280,"kind" : ["Info"],"goal_id" : 1374,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 280,"kind" : ["Info"],"goal_id" : 1374,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 280,"kind" : ["Info"],"goal_id" : 1374,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1375,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1375,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1375,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1375,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X87 = global (const «HB_unnamed_factory_27»)"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1375,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1440"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1440,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X87 = global (const «HB_unnamed_factory_27»)"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1440,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1441"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1441,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1440,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1442"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1442,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1440,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 282,"kind" : ["Info"],"goal_id" : 1440,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X87 = global (const «HB_unnamed_factory_27»)"]} +{"step" : 282,"kind" : ["Info"],"goal_id" : 1440,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 282,"kind" : ["Info"],"goal_id" : 1440,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 282,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X87 := global (const «HB_unnamed_factory_27»)"]} +{"step" : 282,"kind" : ["Info"],"goal_id" : 1440,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 283,"kind" : ["Info"],"goal_id" : 1441,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 283,"kind" : ["Info"],"goal_id" : 1441,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 283,"kind" : ["Info"],"goal_id" : 1441,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1442,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1442,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1442,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1442,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.drop 0 [global (indt «nat»)] [X88 | _]"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1442,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1443"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.drop 0 [global (indt «nat»)] [X88 | _]"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1444"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1444,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1445"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1445,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.drop","std.drop 0 [global (indt «nat»)] [X88 | _]"]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 99, column 0, character 3183:","File \"builtin_stdlib.elpi\", line 100, column 0, character 3200:","File \"builtin_stdlib.elpi\", line 101, column 0, character 3249:"]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 99, column 0, character 3183:","(std.drop 0 A0 A0) :- (!)."]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [global (indt «nat»)]"]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X88 := global (indt «nat»)"]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1446"]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 1446,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 1446,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 286,"kind" : ["Info"],"goal_id" : 1446,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 286,"kind" : ["Info"],"goal_id" : 1446,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 286,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1443","File \"builtin_stdlib.elpi\", line 100, column 0, character 3200:","(std.drop A0 [_ | A1] A2) :- (!), (A3 is A0 - 1), (std.drop A3 A1 A2)."]} +{"step" : 286,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1443","File \"builtin_stdlib.elpi\", line 101, column 0, character 3249:","(std.drop _ _ _) :- (std.fatal-error drop run out of list items)."]} +{"step" : 286,"kind" : ["Info"],"goal_id" : 1446,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 287,"kind" : ["Info"],"goal_id" : 1444,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 287,"kind" : ["Info"],"goal_id" : 1444,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 287,"kind" : ["Info"],"goal_id" : 1444,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1445,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1445,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1445,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1445,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := instance.private.check-non-forgetful-inheritance\n (global (indt «nat»)) (indt «IsSelfA'.axioms_»)"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1445,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1447"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["instance.private.check-non-forgetful-inheritance (global (indt «nat»)) \n (indt «IsSelfA'.axioms_»)"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1448"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1448,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1449"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1449,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.check-non-forgetful-inheritance","instance.private.check-non-forgetful-inheritance (global (indt «nat»)) \n (indt «IsSelfA'.axioms_»)"]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 341, column 0, character 14872:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 343, column 0, character 14959:"]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 341, column 0, character 14872:","(instance.private.check-non-forgetful-inheritance _ _) :- (get-option\n non_forgetful_inheritance \n tt), (!)."]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1450"]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1450,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option non_forgetful_inheritance tt"]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1450,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1451"]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1451,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1450,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 290,"kind" : ["Info"],"goal_id" : 1450,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option non_forgetful_inheritance tt"]} +{"step" : 290,"kind" : ["Info"],"goal_id" : 1450,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 290,"kind" : ["Info"],"goal_id" : 1450,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 290,"kind" : ["Info"],"goal_id" : 1450,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.check-non-forgetful-inheritance","instance.private.check-non-forgetful-inheritance (global (indt «nat»)) \n (indt «IsSelfA'.axioms_»)"]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 343, column 0, character 14959:"]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 343, column 0, character 14959:","(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])."]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «nat»)"]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := indt «IsSelfA'.axioms_»"]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1452"]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 1452,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 1452,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1452,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1452,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1452,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1452,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1452,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1453"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1454"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1454,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1455"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1455,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! []"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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.)"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1456"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1457"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1457,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1458"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1458,"runtime_id" : 8,"name" : "user:newgoal","payload" : [", (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.)"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 294,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126"]} +{"step" : 294,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 294,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1459"]} +{"step" : 294,"kind" : ["Info"],"goal_id" : 1459,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _"]} +{"step" : 294,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1460"]} +{"step" : 294,"kind" : ["Info"],"goal_id" : 1460,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["structure-key X125 _ X126"]} +{"step" : 294,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 295,"kind" : ["Info"],"goal_id" : 1459,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.safe-dest-app","coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _"]} +{"step" : 295,"kind" : ["Info"],"goal_id" : 1459,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 295,"kind" : ["Info"],"goal_id" : 1459,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:"]} +{"step" : 295,"kind" : ["Info"],"goal_id" : 1459,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:","(coq.safe-dest-app A0 A0 []) :- ."]} +{"step" : 295,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «nat»)"]} +{"step" : 295,"kind" : ["Info"],"goal_id" : 1459,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify global (const X125) with global (indt «nat»)"]} +{"step" : 295,"kind" : ["Info"],"goal_id" : 1459,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 296,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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"]} +{"step" : 296,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 296,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 296,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 296,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 296,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1461"]} +{"step" : 296,"kind" : ["Info"],"goal_id" : 1461,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 296,"kind" : ["Info"],"goal_id" : 1461,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 297,"kind" : ["Info"],"goal_id" : 1461,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 297,"kind" : ["Info"],"goal_id" : 1461,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 297,"kind" : ["Info"],"goal_id" : 1461,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 297,"kind" : ["Info"],"goal_id" : 1461,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 297,"kind" : ["Info"],"goal_id" : 1461,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 298,"kind" : ["Info"],"goal_id" : 1454,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 298,"kind" : ["Info"],"goal_id" : 1454,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 298,"kind" : ["Info"],"goal_id" : 1454,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 299,"kind" : ["Info"],"goal_id" : 1455,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do! []"]} +{"step" : 299,"kind" : ["Info"],"goal_id" : 1455,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 299,"kind" : ["Info"],"goal_id" : 1455,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 255, column 0, character 8595:"]} +{"step" : 299,"kind" : ["Info"],"goal_id" : 1455,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 255, column 0, character 8595:","(std.do! []) :- ."]} +{"step" : 299,"kind" : ["Info"],"goal_id" : 1455,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 300,"kind" : ["Info"],"goal_id" : 1448,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 300,"kind" : ["Info"],"goal_id" : 1448,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 300,"kind" : ["Info"],"goal_id" : 1448,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1449,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1449,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1449,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1449,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) \n X89 X90"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1449,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1462"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1463"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1463,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1464"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1464,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.declare-instance","instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 188, column 0, character 8025:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 196, column 0, character 8410:"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 188, column 0, character 8025:","(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)."]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := global (indt «nat»)"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := global (const «HB_unnamed_factory_27»)"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X89"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X90"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1465"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["current-mode (builder-from (global (indt «nat»)) X130 X131 _)"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1466"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1466,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1467"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1467,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1468"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1468,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1469"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1469,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 303,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["current-mode","current-mode (builder-from (global (indt «nat»)) X130 X131 _)"]} +{"step" : 303,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 303,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 303,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.declare-instance","instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 196, column 0, character 8410:"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 196, column 0, character 8410:","(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = []))."]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := global (indt «nat»)"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := global (const «HB_unnamed_factory_27»)"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X89"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X90"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1470"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1470,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["instance.private.declare-canonical-instances-from-factory\n (indt «IsSelfA'.axioms_») (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) X90"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1470,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1471"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1471,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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 = [])"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1470,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 1470,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.declare-canonical-instances-from-factory","instance.private.declare-canonical-instances-from-factory\n (indt «IsSelfA'.axioms_») (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) X90"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 1470,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 1470,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 282, column 0, character 12180:"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 1470,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 282, column 0, character 12180:","(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3])."]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := global (indt «nat»)"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := global (const «HB_unnamed_factory_27»)"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X90"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 1470,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1472"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 1472,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 1472,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1472,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1472,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1472,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1472,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)]]"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [std.append X135 X137 X90]"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1472,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1473"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)]]"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1474"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1474,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1475"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1475,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! [std.append X135 X137 X90]"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["synthesis.under-mixin-src-from-factory.do!","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)]]"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi\", line 100, column 0, character 4390:"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi\", line 100, column 0, character 4390:","(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2])."]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «nat»)"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := global (const «HB_unnamed_factory_27»)"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)]]"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1476"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 1476,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)]]]"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 1476,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1476,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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)]]]"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1476,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1476,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1476,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := synthesis.private.factory-instance->new-mixins [] \n (global (const «HB_unnamed_factory_27»)) X138"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)]]]"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1476,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1477"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["synthesis.private.factory-instance->new-mixins [] \n (global (const «HB_unnamed_factory_27»)) X138"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1478"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1478,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1479"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1479,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)]]]"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["synthesis.private.factory-instance->new-mixins","synthesis.private.factory-instance->new-mixins [] \n (global (const «HB_unnamed_factory_27»)) X138"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi\", line 289, column 0, character 12694:"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi\", line 289, column 0, character 12694:","(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2])."]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := global (const «HB_unnamed_factory_27»)"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X138"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1480"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 1480,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 1480,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1480,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1480,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1480,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1480,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.assert-ok!\n (coq.typecheck (global (const «HB_unnamed_factory_27»)) X140) \n mixin-src: X illtyped"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1480,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1481"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.assert-ok!\n (coq.typecheck (global (const «HB_unnamed_factory_27»)) X140) \n mixin-src: X illtyped"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1482"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1482,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1483"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1483,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert-ok!","std.assert-ok!\n (coq.typecheck (global (const «HB_unnamed_factory_27»)) X140) \n mixin-src: X illtyped"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!)."]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.typecheck (global (const «HB_unnamed_factory_27»)) X140"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := mixin-src: X illtyped"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1484"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.typecheck (global (const «HB_unnamed_factory_27»)) X140 X146"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1485"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1485,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1486"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1486,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X146 = ok ;\n X146 = error X147 , std.fatal-error-w-data mixin-src: X illtyped X147"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1487"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1487,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 312,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.typecheck","coq.typecheck (global (const «HB_unnamed_factory_27»)) X140 X146"]} +{"step" : 312,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 312,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.typecheck"]} +{"step" : 312,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 312,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1488"]} +{"step" : 312,"kind" : ["Info"],"goal_id" : 1488,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X140 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 312,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1489"]} +{"step" : 312,"kind" : ["Info"],"goal_id" : 1489,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X146 = ok"]} +{"step" : 313,"kind" : ["Info"],"goal_id" : 1488,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X140 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 313,"kind" : ["Info"],"goal_id" : 1488,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 313,"kind" : ["Info"],"goal_id" : 1488,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 313,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X140 := app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 313,"kind" : ["Info"],"goal_id" : 1488,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 314,"kind" : ["Info"],"goal_id" : 1489,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X146 = ok"]} +{"step" : 314,"kind" : ["Info"],"goal_id" : 1489,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 314,"kind" : ["Info"],"goal_id" : 1489,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 314,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X146 := ok"]} +{"step" : 314,"kind" : ["Info"],"goal_id" : 1489,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 315,"kind" : ["Info"],"goal_id" : 1485,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 315,"kind" : ["Info"],"goal_id" : 1485,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 315,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1481","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:","(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned)."]} +{"step" : 315,"kind" : ["Info"],"goal_id" : 1485,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 316,"kind" : ["Info"],"goal_id" : 1486,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","ok = ok ; ok = error X147 , std.fatal-error-w-data mixin-src: X illtyped X147"]} +{"step" : 316,"kind" : ["Info"],"goal_id" : 1486,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 316,"kind" : ["Info"],"goal_id" : 1486,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 316,"kind" : ["Info"],"goal_id" : 1486,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 316,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ok = ok"]} +{"step" : 316,"kind" : ["Info"],"goal_id" : 1486,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1490"]} +{"step" : 316,"kind" : ["Info"],"goal_id" : 1490,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["ok = ok"]} +{"step" : 316,"kind" : ["Info"],"goal_id" : 1490,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 317,"kind" : ["Info"],"goal_id" : 1490,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","ok = ok"]} +{"step" : 317,"kind" : ["Info"],"goal_id" : 1490,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 317,"kind" : ["Info"],"goal_id" : 1490,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 317,"kind" : ["Info"],"goal_id" : 1490,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 318,"kind" : ["Info"],"goal_id" : 1487,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 318,"kind" : ["Info"],"goal_id" : 1487,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 318,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1486","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 318,"kind" : ["Info"],"goal_id" : 1487,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 319,"kind" : ["Info"],"goal_id" : 1482,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 319,"kind" : ["Info"],"goal_id" : 1482,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 319,"kind" : ["Info"],"goal_id" : 1482,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1483,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1483,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1483,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1483,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1483,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1491"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1492"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1492,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1493"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1493,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1494"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1495"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1495,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1496"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1496,"runtime_id" : 8,"name" : "user:newgoal","payload" : [", (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)"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["not","not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 52, column 0, character 609:","File \"elpi-builtin.elpi\", line 54, column 0, character 631:"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 52, column 0, character 609:","(not A0) :- A0, (!), fail."]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1497"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1498"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1498,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1499"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1499,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["fail"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.safe-dest-app","coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 72, column 0, character 2783:","File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 72, column 0, character 2783:","(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3)."]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «IsSelfA'.axioms_»)"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (indt «nat»)]"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := global _"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1500"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1500,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1500,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1501"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1501,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global _) X148"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1500,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1502"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1502,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.append X148 [global (indt «nat»)] X149"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1500,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 324,"kind" : ["Info"],"goal_id" : 1500,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 324,"kind" : ["Info"],"goal_id" : 1500,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 324,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1497","File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:","(coq.safe-dest-app A0 A0 []) :- ."]} +{"step" : 324,"kind" : ["Info"],"goal_id" : 1500,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 325,"kind" : ["Info"],"goal_id" : 1501,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.safe-dest-app","coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global _) X148"]} +{"step" : 325,"kind" : ["Info"],"goal_id" : 1501,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 325,"kind" : ["Info"],"goal_id" : 1501,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:"]} +{"step" : 325,"kind" : ["Info"],"goal_id" : 1501,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:","(coq.safe-dest-app A0 A0 []) :- ."]} +{"step" : 325,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «IsSelfA'.axioms_»)"]} +{"step" : 325,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X148 := []"]} +{"step" : 325,"kind" : ["Info"],"goal_id" : 1501,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 326,"kind" : ["Info"],"goal_id" : 1502,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.append","std.append [] [global (indt «nat»)] X149"]} +{"step" : 326,"kind" : ["Info"],"goal_id" : 1502,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 326,"kind" : ["Info"],"goal_id" : 1502,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 81, column 0, character 2754:"]} +{"step" : 326,"kind" : ["Info"],"goal_id" : 1502,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 81, column 0, character 2754:","(std.append [] A0 A0) :- ."]} +{"step" : 326,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [global (indt «nat»)]"]} +{"step" : 326,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X149 := [global (indt «nat»)]"]} +{"step" : 326,"kind" : ["Info"],"goal_id" : 1502,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 327,"kind" : ["Info"],"goal_id" : 1498,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 327,"kind" : ["Info"],"goal_id" : 1498,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 327,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1494","File \"elpi-builtin.elpi\", line 54, column 0, character 631:","(not _) :- ."]} +{"step" : 327,"kind" : ["Info"],"goal_id" : 1498,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 328,"kind" : ["Info"],"goal_id" : 1499,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["fail","fail"]} +{"step" : 328,"kind" : ["Info"],"goal_id" : 1499,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 328,"kind" : ["Info"],"goal_id" : 1499,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 328,"kind" : ["Info"],"goal_id" : 1499,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 329,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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"]} +{"step" : 329,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 329,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 329,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 329,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 329,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1503"]} +{"step" : 329,"kind" : ["Info"],"goal_id" : 1503,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 329,"kind" : ["Info"],"goal_id" : 1503,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 330,"kind" : ["Info"],"goal_id" : 1503,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 330,"kind" : ["Info"],"goal_id" : 1503,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 330,"kind" : ["Info"],"goal_id" : 1503,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 330,"kind" : ["Info"],"goal_id" : 1503,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 330,"kind" : ["Info"],"goal_id" : 1503,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 331,"kind" : ["Info"],"goal_id" : 1492,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 331,"kind" : ["Info"],"goal_id" : 1492,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 331,"kind" : ["Info"],"goal_id" : 1492,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1493,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1493,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1493,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1493,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [factory-provides X143 X144, list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1493,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1504"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1505"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1505,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1506"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1506,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [factory-provides X143 X144, list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.term->gref","coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 431, column 0, character 18295:","File \"/build/source/./elpi/coq-lib.elpi\", line 433, column 0, character 18415:"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 431, column 0, character 18295:","(coq.term->gref (app [A0 | _]) A1) :- (!), (coq.term->gref A0 A1)."]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «IsSelfA'.axioms_»)"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X143"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1507"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1507,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1507,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1508"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1508,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.term->gref (global (indt «IsSelfA'.axioms_»)) X143"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1507,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 334,"kind" : ["Info"],"goal_id" : 1507,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 334,"kind" : ["Info"],"goal_id" : 1507,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 334,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1504","File \"/build/source/./elpi/coq-lib.elpi\", line 433, column 0, character 18415:","(coq.term->gref A0 _) :- (std.fatal-error-w-data\n term->gref: input has no global reference A0)."]} +{"step" : 334,"kind" : ["Info"],"goal_id" : 1507,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 1508,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.term->gref","coq.term->gref (global (indt «IsSelfA'.axioms_»)) X143"]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 1508,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 1508,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 430, column 0, character 18259:","File \"/build/source/./elpi/coq-lib.elpi\", line 433, column 0, character 18415:"]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 1508,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 430, column 0, character 18259:","(coq.term->gref (global A0) A0) :- (!)."]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X143 := indt «IsSelfA'.axioms_»"]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 1508,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1509"]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 1509,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 1509,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 336,"kind" : ["Info"],"goal_id" : 1509,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 336,"kind" : ["Info"],"goal_id" : 1509,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 336,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1508","File \"/build/source/./elpi/coq-lib.elpi\", line 433, column 0, character 18415:","(coq.term->gref A0 _) :- (std.fatal-error-w-data\n term->gref: input has no global reference A0)."]} +{"step" : 336,"kind" : ["Info"],"goal_id" : 1509,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 337,"kind" : ["Info"],"goal_id" : 1505,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 337,"kind" : ["Info"],"goal_id" : 1505,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 337,"kind" : ["Info"],"goal_id" : 1505,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1506,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1506,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1506,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1506,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := factory-provides (indt «IsSelfA'.axioms_») X144"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1506,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1510"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-provides (indt «IsSelfA'.axioms_») X144"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1511"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1511,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1512"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1512,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-provides","factory-provides (indt «IsSelfA'.axioms_») X144"]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 86, column 0, character 2829:"]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 86, column 0, character 2829:","(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1])."]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X144"]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1513"]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 1513,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [factory-alias->gref (indt «IsSelfA'.axioms_») X150, gref-deps X150 X151, \n w-params.map X151 (factory-provides.base X150) X144]"]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 1513,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1513,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do!\n [factory-alias->gref (indt «IsSelfA'.axioms_») X150, gref-deps X150 X151, \n w-params.map X151 (factory-provides.base X150) X144]"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1513,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1513,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1513,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := factory-alias->gref (indt «IsSelfA'.axioms_») X150"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [gref-deps X150 X151, \n w-params.map X151 (factory-provides.base X150) X144]"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1513,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1514"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-alias->gref (indt «IsSelfA'.axioms_») X150"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1515"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1515,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1516"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1516,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [gref-deps X150 X151, w-params.map X151 (factory-provides.base X150) X144]"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-alias->gref","factory-alias->gref (indt «IsSelfA'.axioms_») X150"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 74, column 0, character 2385:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 74, column 0, character 2385:","(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!)."]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X150"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1517"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev X150 (indt «IsSelfA'.axioms_») _"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1518"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1518,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev X150 (indt «IsSelfA'.axioms_») _"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indt «HasA.axioms_»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «HasA.phant_axioms»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- ."]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indc «HasA.Axioms_»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «HasA.phant_Build»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indt «HasB.axioms_»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «HasB.phant_axioms»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- ."]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indc «HasB.Axioms_»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «HasB.phant_Build»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indt «IsSelfA.axioms_»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «IsSelfA.phant_axioms»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- ."]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indc «IsSelfA.Axioms_»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «IsSelfA.phant_Build»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indt «IsSelfA'.axioms_»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «IsSelfA'.phant_axioms»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- ."]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indc «IsSelfA'.Axioms_»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «IsSelfA'.phant_Build»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-alias->gref","factory-alias->gref (indt «IsSelfA'.axioms_») X150"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!)."]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indt «IsSelfA'.axioms_»"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1519"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev (indt «IsSelfA'.axioms_») _ _"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1520"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1520,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev (indt «IsSelfA'.axioms_») _ _"]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «HasA.axioms_»"]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «HasB.axioms_»"]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «IsSelfA.axioms_»"]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 345,"kind" : ["Info"],"goal_id" : 1520,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 345,"kind" : ["Info"],"goal_id" : 1520,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 345,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1514","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «A.axioms_») (indt «A.axioms_»)) :- ."]} +{"step" : 345,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1514","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «B.axioms_») (indt «B.axioms_»)) :- ."]} +{"step" : 345,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1514","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «SelfA.axioms_») (indt «SelfA.axioms_»)) :- ."]} +{"step" : 345,"kind" : ["Info"],"goal_id" : 1520,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 346,"kind" : ["Info"],"goal_id" : 1515,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 346,"kind" : ["Info"],"goal_id" : 1515,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 346,"kind" : ["Info"],"goal_id" : 1515,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1516,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do!\n [gref-deps (indt «IsSelfA'.axioms_») X151, \n w-params.map X151 (factory-provides.base (indt «IsSelfA'.axioms_»)) X144]"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1516,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1516,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1516,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := gref-deps (indt «IsSelfA'.axioms_») X151"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [w-params.map X151 (factory-provides.base (indt «IsSelfA'.axioms_»)) \n X144]"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1516,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1521"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["gref-deps (indt «IsSelfA'.axioms_») X151"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1522"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1522,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1523"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1523,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [w-params.map X151 (factory-provides.base (indt «IsSelfA'.axioms_»)) X144]"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 348,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["gref-deps","gref-deps (indt «IsSelfA'.axioms_») X151"]} +{"step" : 348,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 348,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 348,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(gref-deps (indt «IsSelfA'.axioms_») \n (w-params.nil TheType (sort (typ «interleave_context.382»)) (c0 \\ []))) :- ."]} +{"step" : 348,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X151 := w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []"]} +{"step" : 348,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 349,"kind" : ["Info"],"goal_id" : 1522,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 349,"kind" : ["Info"],"goal_id" : 1522,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 349,"kind" : ["Info"],"goal_id" : 1522,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1523,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1523,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1523,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1523,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := w-params.map\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n (factory-provides.base (indt «IsSelfA'.axioms_»)) X144"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1523,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1524"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["w-params.map\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n (factory-provides.base (indt «IsSelfA'.axioms_»)) X144"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1525"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1525,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1526"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1526,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! []"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["w-params.map","w-params.map\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n (factory-provides.base (indt «IsSelfA'.axioms_»)) X144"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 245, column 0, character 9440:"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 245, column 0, character 9440:","(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2)."]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := factory-provides.base (indt «IsSelfA'.axioms_»)"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X144"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1527"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 1527,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 1527,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 1527,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["w-params.then","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"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 1527,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 1527,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 239, column 0, character 9183:"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 1527,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 239, column 0, character 9183:","(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4)."]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := mk-w-params.cons-name"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := mk-w-params.nil-name"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := factory-provides.base (indt «IsSelfA'.axioms_»)"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X144"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 1527,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1528"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 1528,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 1528,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 1528,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["w-params.fold","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"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 1528,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 1528,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 213, column 0, character 8143:"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 1528,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 213, column 0, character 8143:","(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3)."]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := mk-w-params.cons-name"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X144"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 1528,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1529"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 1529,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 1529,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1529,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["w-params.fold.params","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"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1529,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1529,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 224, column 0, character 8609:"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1529,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 224, column 0, character 8609:","(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5])."]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := TheType"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := sort (typ «interleave_context.382»)"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\\n[]"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := []"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A5 := X144"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1529,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1530"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1530,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1530,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1531"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1531,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1530,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 355,"kind" : ["Info"],"goal_id" : 1530,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 355,"kind" : ["Info"],"goal_id" : 1530,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 355,"kind" : ["Info"],"goal_id" : 1530,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1531,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1531,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1531,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1531,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.id->name TheType X152"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1531,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1532"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.id->name TheType X152"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1533"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1533,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1534"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1534,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.id->name","coq.id->name TheType X152"]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"coq-builtin.elpi\", line 1296, column 0, character 51690:"]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"coq-builtin.elpi\", line 1296, column 0, character 51690:","(coq.id->name A0 A1) :- (coq.string->name A0 A1)."]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := TheType"]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X152"]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1535"]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 1535,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.string->name TheType X152"]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 1535,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 358,"kind" : ["Info"],"goal_id" : 1535,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.string->name","coq.string->name TheType X152"]} +{"step" : 358,"kind" : ["Info"],"goal_id" : 1535,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 358,"kind" : ["Info"],"goal_id" : 1535,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.string->name"]} +{"step" : 358,"kind" : ["Info"],"goal_id" : 1535,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 358,"kind" : ["Info"],"goal_id" : 1535,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1536"]} +{"step" : 358,"kind" : ["Info"],"goal_id" : 1536,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X152 = `TheType`"]} +{"step" : 359,"kind" : ["Info"],"goal_id" : 1536,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X152 = `TheType`"]} +{"step" : 359,"kind" : ["Info"],"goal_id" : 1536,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 359,"kind" : ["Info"],"goal_id" : 1536,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 359,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X152 := `TheType`"]} +{"step" : 359,"kind" : ["Info"],"goal_id" : 1536,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 360,"kind" : ["Info"],"goal_id" : 1533,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 360,"kind" : ["Info"],"goal_id" : 1533,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 360,"kind" : ["Info"],"goal_id" : 1533,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1534,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1534,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1534,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1534,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.rev [] X153"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1534,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1537"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.rev [] X153"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1538"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1538,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1539"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1539,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.rev","std.rev [] X153"]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 70, column 0, character 2457:"]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 70, column 0, character 2457:","(std.rev A0 A1) :- (std.rev.aux A0 [] A1)."]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X153"]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1540"]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 1540,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.rev.aux [] [] X153"]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 1540,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 363,"kind" : ["Info"],"goal_id" : 1540,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.rev.aux","std.rev.aux [] [] X153"]} +{"step" : 363,"kind" : ["Info"],"goal_id" : 1540,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 363,"kind" : ["Info"],"goal_id" : 1540,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 72, column 0, character 2534:"]} +{"step" : 363,"kind" : ["Info"],"goal_id" : 1540,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 72, column 0, character 2534:","(std.rev.aux [] A0 A0) :- ."]} +{"step" : 363,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 363,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X153 := []"]} +{"step" : 363,"kind" : ["Info"],"goal_id" : 1540,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 364,"kind" : ["Info"],"goal_id" : 1538,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 364,"kind" : ["Info"],"goal_id" : 1538,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 364,"kind" : ["Info"],"goal_id" : 1538,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1539,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1539,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1539,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1539,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1539,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1541"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1541,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1541,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1542"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1542,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1541,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1543"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1543,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! []"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1541,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 366,"kind" : ["Info"],"goal_id" : 1541,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["sigma","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"]} +{"step" : 366,"kind" : ["Info"],"goal_id" : 1541,"runtime_id" : 8,"name" : "user:rule","payload" : ["sigma"]} +{"step" : 366,"kind" : ["Info"],"goal_id" : 1541,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1544"]} +{"step" : 366,"kind" : ["Info"],"goal_id" : 1544,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 366,"kind" : ["Info"],"goal_id" : 1544,"runtime_id" : 8,"name" : "user:rule:sigma","payload" : ["success"]} +{"step" : 367,"kind" : ["Info"],"goal_id" : 1544,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","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"]} +{"step" : 367,"kind" : ["Info"],"goal_id" : 1544,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 367,"kind" : ["Info"],"goal_id" : 1544,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1545"]} +{"step" : 367,"kind" : ["Info"],"goal_id" : 1545,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["pi c0 \\\n decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)"]} +{"step" : 367,"kind" : ["Info"],"goal_id" : 1544,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1546"]} +{"step" : 367,"kind" : ["Info"],"goal_id" : 1546,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) X154 \n X144"]} +{"step" : 367,"kind" : ["Info"],"goal_id" : 1544,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 368,"kind" : ["Info"],"goal_id" : 1545,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["pi","pi c0 \\\n decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)"]} +{"step" : 368,"kind" : ["Info"],"goal_id" : 1545,"runtime_id" : 8,"name" : "user:rule","payload" : ["pi"]} +{"step" : 368,"kind" : ["Info"],"goal_id" : 1545,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1547"]} +{"step" : 368,"kind" : ["Info"],"goal_id" : 1547,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)"]} +{"step" : 368,"kind" : ["Info"],"goal_id" : 1547,"runtime_id" : 8,"name" : "user:rule:pi","payload" : ["success"]} +{"step" : 369,"kind" : ["Info"],"goal_id" : 1547,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)"]} +{"step" : 369,"kind" : ["Info"],"goal_id" : 1547,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 369,"kind" : ["Info"],"goal_id" : 1547,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1548"]} +{"step" : 369,"kind" : ["Info"],"goal_id" : 1548,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)"]} +{"step" : 369,"kind" : ["Info"],"goal_id" : 1548,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 1548,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-provides.base","factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 1548,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 1548,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 100, column 0, character 3290:"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 1548,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 100, column 0, character 3290:","(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3])."]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X154 c0"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 1548,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1549"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 1549,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)]"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 1549,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1549,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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)]"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1549,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1549,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1549,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.findall (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)]"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1549,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1550"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.findall (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1551"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1551,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1552"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1552,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)]"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.findall","std.findall (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1"]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:"]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:","(std.findall A0 A1) :- (findall_solutions A0 A1)."]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := from (indt «IsSelfA'.axioms_») X155^1 X156^1"]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X157^1"]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1553"]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 1553,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall_solutions (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1"]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 1553,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 373,"kind" : ["Info"],"goal_id" : 1553,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall_solutions","findall_solutions (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1"]} +{"step" : 373,"kind" : ["Info"],"goal_id" : 1553,"runtime_id" : 8,"name" : "user:rule","payload" : ["findall"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:newgoal","payload" : ["from (indt «IsSelfA'.axioms_») X0^1 X1^1"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:curgoal","payload" : ["from","from (indt «IsSelfA'.axioms_») X0^1 X1^1"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «HasA.axioms_») (indt «HasA.axioms_») \n (const «HasA.identity_builder»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «HasA.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «A.axioms_») (indt «HasA.axioms_») \n (const «A.interleave_context_HasA_mixin»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «A.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «HasB.axioms_») (indt «HasB.axioms_») \n (const «HasB.identity_builder»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «HasB.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «B.axioms_») (indt «HasB.axioms_») \n (const «B.interleave_context_HasB_mixin»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «B.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «IsSelfA.axioms_») (indt «IsSelfA.axioms_») \n (const «IsSelfA.identity_builder»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «IsSelfA.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «SelfA.axioms_») (indt «HasA.axioms_») \n (const «SelfA.interleave_context_HasA_mixin»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «SelfA.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «SelfA.axioms_») (indt «HasB.axioms_») \n (const «SelfA.interleave_context_HasB_mixin»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «SelfA.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «SelfA.axioms_») (indt «IsSelfA.axioms_») \n (const «SelfA.interleave_context_IsSelfA_mixin»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «SelfA.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 10,"name" : "user:assign","payload" : ["X0^1 := indt «IsSelfA.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 10,"name" : "user:assign","payload" : ["X1^1 := const «Builders_18.HB_unnamed_factory_24»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:curgoal","payload" : ["from","from (indt «IsSelfA'.axioms_») X0^1 X1^1"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) :- ."]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 10,"name" : "user:assign","payload" : ["X0^1 := indt «HasB.axioms_»"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 10,"name" : "user:assign","payload" : ["X1^1 := const «Builders_18.HB_unnamed_factory_22»"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:curgoal","payload" : ["from","from (indt «IsSelfA'.axioms_») X0^1 X1^1"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) :- ."]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 10,"name" : "user:assign","payload" : ["X0^1 := indt «HasA.axioms_»"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 10,"name" : "user:assign","payload" : ["X1^1 := const «Builders_18.HB_unnamed_factory_20»"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 373,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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»)]"]} +{"step" : 373,"kind" : ["Info"],"goal_id" : 1553,"runtime_id" : 8,"name" : "user:rule:findall","payload" : ["success"]} +{"step" : 374,"kind" : ["Info"],"goal_id" : 1551,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 374,"kind" : ["Info"],"goal_id" : 1551,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 374,"kind" : ["Info"],"goal_id" : 1551,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1552,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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)]"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1552,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1552,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1552,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)]"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1552,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1556"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1557"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1557,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1558"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1558,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)]"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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»)]"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := from_mixin"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X158^1 := [X160^1 | X161^1]"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1559"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1559,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) X160^1"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1559,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1560"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1560,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1559,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 377,"kind" : ["Info"],"goal_id" : 1559,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["from_mixin","from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) X160^1"]} +{"step" : 377,"kind" : ["Info"],"goal_id" : 1559,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 377,"kind" : ["Info"],"goal_id" : 1559,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 12, column 0, character 414:"]} +{"step" : 377,"kind" : ["Info"],"goal_id" : 1559,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 12, column 0, character 414:","(from_mixin (from _ A0 _) A0) :- ."]} +{"step" : 377,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA.axioms_»"]} +{"step" : 377,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X160^1 := indt «IsSelfA.axioms_»"]} +{"step" : 377,"kind" : ["Info"],"goal_id" : 1559,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1560,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1560,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1560,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1560,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)]"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := from_mixin"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X161^1 := [X162^1 | X163^1]"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1560,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1561"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1561,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) X162^1"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1561,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1562"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1562,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X163^1"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1561,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 379,"kind" : ["Info"],"goal_id" : 1561,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["from_mixin","from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) X162^1"]} +{"step" : 379,"kind" : ["Info"],"goal_id" : 1561,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 379,"kind" : ["Info"],"goal_id" : 1561,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 12, column 0, character 414:"]} +{"step" : 379,"kind" : ["Info"],"goal_id" : 1561,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 12, column 0, character 414:","(from_mixin (from _ A0 _) A0) :- ."]} +{"step" : 379,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «HasB.axioms_»"]} +{"step" : 379,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X162^1 := indt «HasB.axioms_»"]} +{"step" : 379,"kind" : ["Info"],"goal_id" : 1561,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1562,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X163^1"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1562,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1562,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1562,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := from_mixin"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X163^1 := [X164^1 | X165^1]"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1562,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1563"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1563,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) X164^1"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1563,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1564"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1564,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [] from_mixin X165^1"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1563,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 381,"kind" : ["Info"],"goal_id" : 1563,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["from_mixin","from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) X164^1"]} +{"step" : 381,"kind" : ["Info"],"goal_id" : 1563,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 381,"kind" : ["Info"],"goal_id" : 1563,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 12, column 0, character 414:"]} +{"step" : 381,"kind" : ["Info"],"goal_id" : 1563,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 12, column 0, character 414:","(from_mixin (from _ A0 _) A0) :- ."]} +{"step" : 381,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «HasA.axioms_»"]} +{"step" : 381,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X164^1 := indt «HasA.axioms_»"]} +{"step" : 381,"kind" : ["Info"],"goal_id" : 1563,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 382,"kind" : ["Info"],"goal_id" : 1564,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] from_mixin X165^1"]} +{"step" : 382,"kind" : ["Info"],"goal_id" : 1564,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 382,"kind" : ["Info"],"goal_id" : 1564,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 382,"kind" : ["Info"],"goal_id" : 1564,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 382,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X165^1 := []"]} +{"step" : 382,"kind" : ["Info"],"goal_id" : 1564,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 383,"kind" : ["Info"],"goal_id" : 1557,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 383,"kind" : ["Info"],"goal_id" : 1557,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 383,"kind" : ["Info"],"goal_id" : 1557,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1558,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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)]"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1558,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1558,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1558,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [std.map2 X159^1 \n [indt «IsSelfA.axioms_», indt «HasB.axioms_», \n indt «HasA.axioms_»] (factory-provides.one [] c0) (X154 c0)]"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1558,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1565"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1566"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1566,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1567"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1567,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [std.map2 X159^1 \n [indt «IsSelfA.axioms_», indt «HasB.axioms_», indt «HasA.axioms_»] \n (factory-provides.one [] c0) (X154 c0)]"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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»)]"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := from_builder"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X159^1 := [X166^1 | X167^1]"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1568"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1568,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["from_builder\n (from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) X166^1"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1568,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1569"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1569,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1568,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 386,"kind" : ["Info"],"goal_id" : 1568,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["from_builder","from_builder\n (from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) X166^1"]} +{"step" : 386,"kind" : ["Info"],"goal_id" : 1568,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 386,"kind" : ["Info"],"goal_id" : 1568,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 15, column 0, character 476:"]} +{"step" : 386,"kind" : ["Info"],"goal_id" : 1568,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 15, column 0, character 476:","(from_builder (from _ _ A0) (global A0)) :- ."]} +{"step" : 386,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := const «Builders_18.HB_unnamed_factory_24»"]} +{"step" : 386,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X166^1 := global (const «Builders_18.HB_unnamed_factory_24»)"]} +{"step" : 386,"kind" : ["Info"],"goal_id" : 1568,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1569,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1569,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1569,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1569,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)]"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := from_builder"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X167^1 := [X168^1 | X169^1]"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1569,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1570"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1570,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["from_builder\n (from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) X168^1"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1570,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1571"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1571,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X169^1"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1570,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 388,"kind" : ["Info"],"goal_id" : 1570,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["from_builder","from_builder\n (from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) X168^1"]} +{"step" : 388,"kind" : ["Info"],"goal_id" : 1570,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 388,"kind" : ["Info"],"goal_id" : 1570,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 15, column 0, character 476:"]} +{"step" : 388,"kind" : ["Info"],"goal_id" : 1570,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 15, column 0, character 476:","(from_builder (from _ _ A0) (global A0)) :- ."]} +{"step" : 388,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := const «Builders_18.HB_unnamed_factory_22»"]} +{"step" : 388,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X168^1 := global (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 388,"kind" : ["Info"],"goal_id" : 1570,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1571,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X169^1"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1571,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1571,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1571,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := from_builder"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X169^1 := [X170^1 | X171^1]"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1571,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1572"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1572,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["from_builder\n (from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) X170^1"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1572,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1573"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1573,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [] from_builder X171^1"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1572,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 390,"kind" : ["Info"],"goal_id" : 1572,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["from_builder","from_builder\n (from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) X170^1"]} +{"step" : 390,"kind" : ["Info"],"goal_id" : 1572,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 390,"kind" : ["Info"],"goal_id" : 1572,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 15, column 0, character 476:"]} +{"step" : 390,"kind" : ["Info"],"goal_id" : 1572,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 15, column 0, character 476:","(from_builder (from _ _ A0) (global A0)) :- ."]} +{"step" : 390,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := const «Builders_18.HB_unnamed_factory_20»"]} +{"step" : 390,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X170^1 := global (const «Builders_18.HB_unnamed_factory_20»)"]} +{"step" : 390,"kind" : ["Info"],"goal_id" : 1572,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 391,"kind" : ["Info"],"goal_id" : 1573,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] from_builder X171^1"]} +{"step" : 391,"kind" : ["Info"],"goal_id" : 1573,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 391,"kind" : ["Info"],"goal_id" : 1573,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 391,"kind" : ["Info"],"goal_id" : 1573,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 391,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X171^1 := []"]} +{"step" : 391,"kind" : ["Info"],"goal_id" : 1573,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 392,"kind" : ["Info"],"goal_id" : 1566,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 392,"kind" : ["Info"],"goal_id" : 1566,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 392,"kind" : ["Info"],"goal_id" : 1566,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1567,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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)]"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1567,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1567,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1567,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1567,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1574"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1575"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1575,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1576"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1576,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! []"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map2","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)"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 141, column 0, character 4745:"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 141, column 0, character 4745:","(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6)."]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (const «Builders_18.HB_unnamed_factory_24»)"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (const «Builders_18.HB_unnamed_factory_22»), \n global (const «Builders_18.HB_unnamed_factory_20»)]"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := indt «IsSelfA.axioms_»"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := [indt «HasB.axioms_», indt «HasA.axioms_»]"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := factory-provides.one [] c0"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign:simplify","payload" : ["X154 := c0 \\\nX172 c0"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X172^1 := [X173^1 | X174^1]"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1577"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1577,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_24»)) \n (indt «IsSelfA.axioms_») X173^1"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1577,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1578"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1578,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1577,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 1577,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-provides.one","factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_24»)) \n (indt «IsSelfA.axioms_») X173^1"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 1577,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 1577,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 108, column 0, character 3601:"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 1577,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 108, column 0, character 3601:","(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins])."]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := c0"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := global (const «Builders_18.HB_unnamed_factory_24»)"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := indt «IsSelfA.axioms_»"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X173^1 := triple (indt «IsSelfA.axioms_») X175^1 c0"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 1577,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1579"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 1579,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 1579,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1579,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1579,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1579,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1579,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) \n X176^1) Builder illtyped"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1579,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1580"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1) \n Builder illtyped"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1581"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1581,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1582"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1582,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert-ok!","std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1) \n Builder illtyped"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!)."]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) \n X176^1"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := Builder illtyped"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1583"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1 \n X179^1"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1584"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1584,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1585"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1585,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X179^1 = ok ;\n X179^1 = error X180^1 , std.fatal-error-w-data Builder illtyped X180^1"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1586"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1586,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 398,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.typecheck","coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1 \n X179^1"]} +{"step" : 398,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 398,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.typecheck"]} +{"step" : 398,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 398,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1587"]} +{"step" : 398,"kind" : ["Info"],"goal_id" : 1587,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]]"]} +{"step" : 398,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1588"]} +{"step" : 398,"kind" : ["Info"],"goal_id" : 1588,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X179^1 = ok"]} +{"step" : 399,"kind" : ["Info"],"goal_id" : 1587,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","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]]"]} +{"step" : 399,"kind" : ["Info"],"goal_id" : 1587,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 399,"kind" : ["Info"],"goal_id" : 1587,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 399,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]]"]} +{"step" : 399,"kind" : ["Info"],"goal_id" : 1587,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 400,"kind" : ["Info"],"goal_id" : 1588,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X179^1 = ok"]} +{"step" : 400,"kind" : ["Info"],"goal_id" : 1588,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 400,"kind" : ["Info"],"goal_id" : 1588,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 400,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X179^1 := ok"]} +{"step" : 400,"kind" : ["Info"],"goal_id" : 1588,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 401,"kind" : ["Info"],"goal_id" : 1584,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 401,"kind" : ["Info"],"goal_id" : 1584,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 401,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1580","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:","(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned)."]} +{"step" : 401,"kind" : ["Info"],"goal_id" : 1584,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 402,"kind" : ["Info"],"goal_id" : 1585,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","ok = ok ; ok = error X180^1 , std.fatal-error-w-data Builder illtyped X180^1"]} +{"step" : 402,"kind" : ["Info"],"goal_id" : 1585,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 402,"kind" : ["Info"],"goal_id" : 1585,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 402,"kind" : ["Info"],"goal_id" : 1585,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 402,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ok = ok"]} +{"step" : 402,"kind" : ["Info"],"goal_id" : 1585,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1589"]} +{"step" : 402,"kind" : ["Info"],"goal_id" : 1589,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["ok = ok"]} +{"step" : 402,"kind" : ["Info"],"goal_id" : 1589,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 403,"kind" : ["Info"],"goal_id" : 1589,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","ok = ok"]} +{"step" : 403,"kind" : ["Info"],"goal_id" : 1589,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 403,"kind" : ["Info"],"goal_id" : 1589,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 403,"kind" : ["Info"],"goal_id" : 1589,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 404,"kind" : ["Info"],"goal_id" : 1586,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 404,"kind" : ["Info"],"goal_id" : 1586,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 404,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1585","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 404,"kind" : ["Info"],"goal_id" : 1586,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 405,"kind" : ["Info"],"goal_id" : 1581,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 405,"kind" : ["Info"],"goal_id" : 1581,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 405,"kind" : ["Info"],"goal_id" : 1581,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1582,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1582,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1582,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1582,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1582,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1590"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1591"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1591,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1592"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1592,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 407,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","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"]} +{"step" : 407,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 407,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1593"]} +{"step" : 407,"kind" : ["Info"],"goal_id" : 1593,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 407,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1594"]} +{"step" : 407,"kind" : ["Info"],"goal_id" : 1594,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.subst-prod [c0] X177^1 X178^1"]} +{"step" : 407,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 1593,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.subst-prod","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"]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 1593,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 1593,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 36, column 0, character 1340:","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:"]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 1593,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 36, column 0, character 1340:","(coq.subst-prod [] A0 A0) :- (!)."]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]]"]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]]"]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 1593,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1595"]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 1595,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 1595,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 409,"kind" : ["Info"],"goal_id" : 1595,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 409,"kind" : ["Info"],"goal_id" : 1595,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 409,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1593","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:","(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3)."]} +{"step" : 409,"kind" : ["Info"],"goal_id" : 1595,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1594,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.subst-prod","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"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1594,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1594,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 37, column 0, character 1368:","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:","File \"/build/source/./elpi/coq-lib.elpi\", line 39, column 0, character 1505:"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1594,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 37, column 0, character 1368:","(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3)."]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]]"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X178^1"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1594,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1596"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1596,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1596,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1597"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1597,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1596,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 411,"kind" : ["Info"],"goal_id" : 1596,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 411,"kind" : ["Info"],"goal_id" : 1596,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 411,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1594","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:","(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3)."]} +{"step" : 411,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1594","File \"/build/source/./elpi/coq-lib.elpi\", line 39, column 0, character 1505:","(coq.subst-prod [_ | _] A0 _) :- (!), \n (std.fatal-error-w-data subst-prod: not a product A0)."]} +{"step" : 411,"kind" : ["Info"],"goal_id" : 1596,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 1597,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.subst-prod","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"]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 1597,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 1597,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 36, column 0, character 1340:","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:"]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 1597,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 36, column 0, character 1340:","(coq.subst-prod [] A0 A0) :- (!)."]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]]"]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]]"]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 1597,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1598"]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 1598,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 1598,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 413,"kind" : ["Info"],"goal_id" : 1598,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 413,"kind" : ["Info"],"goal_id" : 1598,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 413,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1597","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:","(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3)."]} +{"step" : 413,"kind" : ["Info"],"goal_id" : 1598,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 414,"kind" : ["Info"],"goal_id" : 1591,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 414,"kind" : ["Info"],"goal_id" : 1591,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 414,"kind" : ["Info"],"goal_id" : 1591,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1592,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1592,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1592,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1592,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1592,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1599"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1600"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1600,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1601"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1601,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! []"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert!","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"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 35, column 0, character 1155:"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 35, column 0, character 1155:","(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!)."]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := The conclusion of a builder is a mixin whose parameters depend on other mixins"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1602"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1602,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1602,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1603"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1603,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1602,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 417,"kind" : ["Info"],"goal_id" : 1602,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","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)"]} +{"step" : 417,"kind" : ["Info"],"goal_id" : 1602,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 417,"kind" : ["Info"],"goal_id" : 1602,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 417,"kind" : ["Info"],"goal_id" : 1602,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 417,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 417,"kind" : ["Info"],"goal_id" : 1602,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1604"]} +{"step" : 417,"kind" : ["Info"],"goal_id" : 1604,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 417,"kind" : ["Info"],"goal_id" : 1604,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1604,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["extract-conclusion-params","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"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1604,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1604,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 115, column 0, character 3974:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 117, column 0, character 4090:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 122, column 0, character 4303:"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1604,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 115, column 0, character 3974:","(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3)))."]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app [global (const «IsSelfA'.phant_axioms»), c0]"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]]"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X175^1"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1604,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1605"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1605,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1605,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1606"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1606,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1605,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 419,"kind" : ["Info"],"goal_id" : 1605,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 419,"kind" : ["Info"],"goal_id" : 1605,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 419,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1604","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 117, column 0, character 4090:","(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))."]} +{"step" : 419,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1604","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 122, column 0, character 4303:","(extract-conclusion-params A0 A1 A2) :- (whd1 A1 A3), (!), \n (extract-conclusion-params A0 A3 A2)."]} +{"step" : 419,"kind" : ["Info"],"goal_id" : 1605,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 420,"kind" : ["Info"],"goal_id" : 1606,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["pi","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"]} +{"step" : 420,"kind" : ["Info"],"goal_id" : 1606,"runtime_id" : 8,"name" : "user:rule","payload" : ["pi"]} +{"step" : 420,"kind" : ["Info"],"goal_id" : 1606,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1607"]} +{"step" : 420,"kind" : ["Info"],"goal_id" : 1607,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 420,"kind" : ["Info"],"goal_id" : 1607,"runtime_id" : 8,"name" : "user:rule:pi","payload" : ["success"]} +{"step" : 421,"kind" : ["Info"],"goal_id" : 1607,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","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"]} +{"step" : 421,"kind" : ["Info"],"goal_id" : 1607,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 421,"kind" : ["Info"],"goal_id" : 1607,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1608"]} +{"step" : 421,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 421,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["extract-conclusion-params","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"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 115, column 0, character 3974:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 117, column 0, character 4090:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 122, column 0, character 4303:"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 115, column 0, character 3974:","(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3)))."]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["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"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 117, column 0, character 4090:","(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))."]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := indt «IsSelfA.axioms_»"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]]"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X175^1"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1609"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1610"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-alias->gref (indt «IsSelfA.axioms_») X181^2"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1611"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-nparams X181^2 X182^2"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1612"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1612,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1613"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1613,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.spy (std.take X182^2 X183^2 X175^1)"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 423,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 423,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 423,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1608","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 122, column 0, character 4303:","(extract-conclusion-params A0 A1 A2) :- (whd1 A1 A3), (!), \n (extract-conclusion-params A0 A3 A2)."]} +{"step" : 423,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-alias->gref","factory-alias->gref (indt «IsSelfA.axioms_») X181^2"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 74, column 0, character 2385:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 74, column 0, character 2385:","(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!)."]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA.axioms_»"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X181^2"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1614"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev X181^2 (indt «IsSelfA.axioms_») _"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1615"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1615,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev X181^2 (indt «IsSelfA.axioms_») _"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indt «HasA.axioms_»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with const «HasA.phant_axioms»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- ."]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indc «HasA.Axioms_»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with const «HasA.phant_Build»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indt «HasB.axioms_»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with const «HasB.phant_axioms»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- ."]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indc «HasB.Axioms_»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with const «HasB.phant_Build»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indt «IsSelfA.axioms_»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with const «IsSelfA.phant_axioms»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- ."]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indc «IsSelfA.Axioms_»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with const «IsSelfA.phant_Build»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indt «IsSelfA'.axioms_»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with const «IsSelfA'.phant_axioms»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- ."]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indc «IsSelfA'.Axioms_»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with const «IsSelfA'.phant_Build»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-alias->gref","factory-alias->gref (indt «IsSelfA.axioms_») X181^2"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!)."]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA.axioms_»"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indt «IsSelfA.axioms_»"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1616"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev (indt «IsSelfA.axioms_») _ _"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1617"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1617,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev (indt «IsSelfA.axioms_») _ _"]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with indt «HasA.axioms_»"]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with indt «HasB.axioms_»"]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 428,"kind" : ["Info"],"goal_id" : 1617,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 428,"kind" : ["Info"],"goal_id" : 1617,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 428,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1616","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 428,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1610","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «A.axioms_») (indt «A.axioms_»)) :- ."]} +{"step" : 428,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1610","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «B.axioms_») (indt «B.axioms_»)) :- ."]} +{"step" : 428,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1610","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «SelfA.axioms_») (indt «SelfA.axioms_»)) :- ."]} +{"step" : 428,"kind" : ["Info"],"goal_id" : 1617,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-nparams","factory-nparams (indt «IsSelfA.axioms_») X182^2"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «HasA.axioms_») 1) :- ."]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with indt «HasA.axioms_»"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «A.axioms_») 1) :- ."]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with indt «A.axioms_»"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «HasB.axioms_») 1) :- ."]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with indt «HasB.axioms_»"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «B.axioms_») 1) :- ."]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with indt «B.axioms_»"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «IsSelfA.axioms_») 0) :- ."]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X182^2 := 0"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1612,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1612,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1612,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1612,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy-pack-holes c0"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X183^2 := [X184^2 | X185^2]"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1612,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1618"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1618,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy-pack-holes c0 c0 X184^2"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1618,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1619"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1619,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1618,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1618,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy-pack-holes","copy-pack-holes c0 c0 X184^2"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1618,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1618,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1618,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:","(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2)."]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := c0"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X184^2"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1618,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1620"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall-local-canonical X186^2"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1621"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1621,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.copy-clauses-for-unfold X186^2 X187^2"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1622"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1622,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["[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"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall-local-canonical","findall-local-canonical X186^2"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:","(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0)."]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X186^2"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1623"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1623,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.findall (local-canonical X189^2) X190^2"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1623,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1624"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1624,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map X190^2 local-canonical-gref X186^2"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1623,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 1623,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.findall","std.findall (local-canonical X189^2) X190^2"]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 1623,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 1623,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:"]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 1623,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:","(std.findall A0 A1) :- (findall_solutions A0 A1)."]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := local-canonical X189^2"]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X190^2"]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 1623,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1625"]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 1625,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall_solutions (local-canonical X189^2) X190^2"]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 1625,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 434,"kind" : ["Info"],"goal_id" : 1625,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall_solutions","findall_solutions (local-canonical X189^2) X190^2"]} +{"step" : 434,"kind" : ["Info"],"goal_id" : 1625,"runtime_id" : 8,"name" : "user:rule","payload" : ["findall"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 1627,"runtime_id" : 11,"name" : "user:newgoal","payload" : ["local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1627,"runtime_id" : 11,"name" : "user:curgoal","payload" : ["local-canonical","local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1627,"runtime_id" : 11,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1627,"runtime_id" : 11,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1627,"runtime_id" : 11,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 434,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X190^2 := []"]} +{"step" : 434,"kind" : ["Info"],"goal_id" : 1625,"runtime_id" : 8,"name" : "user:rule:findall","payload" : ["success"]} +{"step" : 435,"kind" : ["Info"],"goal_id" : 1624,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] local-canonical-gref X186^2"]} +{"step" : 435,"kind" : ["Info"],"goal_id" : 1624,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 435,"kind" : ["Info"],"goal_id" : 1624,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 435,"kind" : ["Info"],"goal_id" : 1624,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 435,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X186^2 := []"]} +{"step" : 435,"kind" : ["Info"],"goal_id" : 1624,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 436,"kind" : ["Info"],"goal_id" : 1621,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.copy-clauses-for-unfold","coq.copy-clauses-for-unfold [] X187^2"]} +{"step" : 436,"kind" : ["Info"],"goal_id" : 1621,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 436,"kind" : ["Info"],"goal_id" : 1621,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:"]} +{"step" : 436,"kind" : ["Info"],"goal_id" : 1621,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:","(coq.copy-clauses-for-unfold [] []) :- ."]} +{"step" : 436,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X187^2 := []"]} +{"step" : 436,"kind" : ["Info"],"goal_id" : 1621,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 437,"kind" : ["Info"],"goal_id" : 1622,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","[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"]} +{"step" : 437,"kind" : ["Info"],"goal_id" : 1622,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 437,"kind" : ["Info"],"goal_id" : 1622,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1628"]} +{"step" : 437,"kind" : ["Info"],"goal_id" : 1628,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c0 X184^2"]} +{"step" : 437,"kind" : ["Info"],"goal_id" : 1628,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1628,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy c0 X184^2"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1628,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1628,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1628,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X184^2"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1628,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1629"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name c0"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1630"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1630,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1631"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1631,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = X184^2"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1632"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1632,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 439,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name c0"]} +{"step" : 439,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 439,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 439,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 439,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1633"]} +{"step" : 439,"kind" : ["Info"],"goal_id" : 1633,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = c0"]} +{"step" : 440,"kind" : ["Info"],"goal_id" : 1633,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = c0"]} +{"step" : 440,"kind" : ["Info"],"goal_id" : 1633,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 440,"kind" : ["Info"],"goal_id" : 1633,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 440,"kind" : ["Info"],"goal_id" : 1633,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 441,"kind" : ["Info"],"goal_id" : 1630,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 441,"kind" : ["Info"],"goal_id" : 1630,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 441,"kind" : ["Info"],"goal_id" : 1630,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 442,"kind" : ["Info"],"goal_id" : 1631,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = X184^2"]} +{"step" : 442,"kind" : ["Info"],"goal_id" : 1631,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 442,"kind" : ["Info"],"goal_id" : 1631,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 442,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X184 c0 c1 := c0"]} +{"step" : 442,"kind" : ["Info"],"goal_id" : 1631,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 443,"kind" : ["Info"],"goal_id" : 1632,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 443,"kind" : ["Info"],"goal_id" : 1632,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 443,"kind" : ["Info"],"goal_id" : 1632,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1619,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1619,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1619,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1619,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy-pack-holes c0"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X185^2 := [X191^2 | X192^2]"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1619,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1634"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1634,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy-pack-holes c0 \n (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) X191^2"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1634,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1635"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1635,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n (copy-pack-holes c0) X192^2"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1634,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1634,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy-pack-holes","copy-pack-holes c0 \n (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) X191^2"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1634,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1634,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1634,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:","(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2)."]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X191^2"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1634,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1636"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall-local-canonical X193^2"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1637"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1637,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.copy-clauses-for-unfold X193^2 X194^2"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1638"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1638,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["[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"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall-local-canonical","findall-local-canonical X193^2"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:","(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0)."]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X193^2"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1639"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1639,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.findall (local-canonical X196^2) X197^2"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1639,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1640"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1640,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map X197^2 local-canonical-gref X193^2"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1639,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 1639,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.findall","std.findall (local-canonical X196^2) X197^2"]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 1639,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 1639,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:"]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 1639,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:","(std.findall A0 A1) :- (findall_solutions A0 A1)."]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := local-canonical X196^2"]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X197^2"]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 1639,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1641"]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 1641,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall_solutions (local-canonical X196^2) X197^2"]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 1641,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 448,"kind" : ["Info"],"goal_id" : 1641,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall_solutions","findall_solutions (local-canonical X196^2) X197^2"]} +{"step" : 448,"kind" : ["Info"],"goal_id" : 1641,"runtime_id" : 8,"name" : "user:rule","payload" : ["findall"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 1643,"runtime_id" : 12,"name" : "user:newgoal","payload" : ["local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1643,"runtime_id" : 12,"name" : "user:curgoal","payload" : ["local-canonical","local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1643,"runtime_id" : 12,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1643,"runtime_id" : 12,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1643,"runtime_id" : 12,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 448,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X197^2 := []"]} +{"step" : 448,"kind" : ["Info"],"goal_id" : 1641,"runtime_id" : 8,"name" : "user:rule:findall","payload" : ["success"]} +{"step" : 449,"kind" : ["Info"],"goal_id" : 1640,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] local-canonical-gref X193^2"]} +{"step" : 449,"kind" : ["Info"],"goal_id" : 1640,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 449,"kind" : ["Info"],"goal_id" : 1640,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 449,"kind" : ["Info"],"goal_id" : 1640,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 449,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X193^2 := []"]} +{"step" : 449,"kind" : ["Info"],"goal_id" : 1640,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 450,"kind" : ["Info"],"goal_id" : 1637,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.copy-clauses-for-unfold","coq.copy-clauses-for-unfold [] X194^2"]} +{"step" : 450,"kind" : ["Info"],"goal_id" : 1637,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 450,"kind" : ["Info"],"goal_id" : 1637,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:"]} +{"step" : 450,"kind" : ["Info"],"goal_id" : 1637,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:","(coq.copy-clauses-for-unfold [] []) :- ."]} +{"step" : 450,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X194^2 := []"]} +{"step" : 450,"kind" : ["Info"],"goal_id" : 1637,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 451,"kind" : ["Info"],"goal_id" : 1638,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","[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"]} +{"step" : 451,"kind" : ["Info"],"goal_id" : 1638,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 451,"kind" : ["Info"],"goal_id" : 1638,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1644"]} +{"step" : 451,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2"]} +{"step" : 451,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:451)\", line 1, column 0, character 0:","File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:451)\", line 1, column 0, character 0:","(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)."]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A5 := const «Builders_18.HB_unnamed_factory_20»"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [c0, c1]"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X191^2 := app [global (const «Builders_18.HB_unnamed_factory_20») | X198^2]"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1645"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["pack? (const «Builders_18.HB_unnamed_factory_20») _"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1646"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1646,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1647"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1647,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.rev [c0, c1] [X199^2, c0 | X200^2]"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1648"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1648,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c0 X195^2"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1649"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1649,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map X200^2 copy X201^2"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1650"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1650,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.rev [global (const «elpi.hole»), X195^2 | X201^2] X198^2"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 453,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["pack?","pack? (const «Builders_18.HB_unnamed_factory_20») _"]} +{"step" : 453,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 453,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 453,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X191^2"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1651"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1])"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1652"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1652,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1653"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1653,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1] = X191^2"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1654"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1654,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 455,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1])"]} +{"step" : 455,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 455,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 455,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:","(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1)."]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X191^2 := app X202^2"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1655"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1655,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1655,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1656"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1656,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1] copy \n X202^2"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1655,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 457,"kind" : ["Info"],"goal_id" : 1655,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 457,"kind" : ["Info"],"goal_id" : 1655,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 457,"kind" : ["Info"],"goal_id" : 1655,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1656,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1] copy \n X202^2"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1656,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1656,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1656,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (const «Builders_18.HB_unnamed_factory_20»)"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [c0, c1]"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X202^2 := [X203^2 | X204^2]"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1656,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1657"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy (global (const «Builders_18.HB_unnamed_factory_20»)) X203^2"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1658"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1658,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [c0, c1] copy X204^2"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (global (const «Builders_18.HB_unnamed_factory_20»)) X203^2"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (const «Builders_18.HB_unnamed_factory_20»)"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X203^2"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1659"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name (global (const «Builders_18.HB_unnamed_factory_20»))"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1660"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1660,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1661"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1661,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["global (const «Builders_18.HB_unnamed_factory_20») = X203^2"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1662"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1662,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 460,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name (global (const «Builders_18.HB_unnamed_factory_20»))"]} +{"step" : 460,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 460,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 460,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (global (const «Builders_18.HB_unnamed_factory_20»)) X203^2"]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:"]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:","(copy (as (global _) A0) A0) :- (!)."]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (const «Builders_18.HB_unnamed_factory_20»)"]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X203^2 := global (const «Builders_18.HB_unnamed_factory_20»)"]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1663"]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 1663,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 1663,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 462,"kind" : ["Info"],"goal_id" : 1663,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 462,"kind" : ["Info"],"goal_id" : 1663,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 462,"kind" : ["Info"],"goal_id" : 1663,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1658,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [c0, c1] copy X204^2"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1658,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1658,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1658,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [c1]"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X204^2 := [X205^2 | X206^2]"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1658,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1664"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1664,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c0 X205^2"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1664,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1665"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1665,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [c1] copy X206^2"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1664,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1664,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy c0 X205^2"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1664,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1664,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1664,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X205^2"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1664,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1666"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name c0"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1667"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1667,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1668"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1668,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = X205^2"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1669"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1669,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 465,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name c0"]} +{"step" : 465,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 465,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 465,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 465,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1670"]} +{"step" : 465,"kind" : ["Info"],"goal_id" : 1670,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = c0"]} +{"step" : 466,"kind" : ["Info"],"goal_id" : 1670,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = c0"]} +{"step" : 466,"kind" : ["Info"],"goal_id" : 1670,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 466,"kind" : ["Info"],"goal_id" : 1670,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 466,"kind" : ["Info"],"goal_id" : 1670,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 467,"kind" : ["Info"],"goal_id" : 1667,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 467,"kind" : ["Info"],"goal_id" : 1667,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 467,"kind" : ["Info"],"goal_id" : 1667,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 468,"kind" : ["Info"],"goal_id" : 1668,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = X205^2"]} +{"step" : 468,"kind" : ["Info"],"goal_id" : 1668,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 468,"kind" : ["Info"],"goal_id" : 1668,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 468,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X205 c0 c1 := c0"]} +{"step" : 468,"kind" : ["Info"],"goal_id" : 1668,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 469,"kind" : ["Info"],"goal_id" : 1669,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 469,"kind" : ["Info"],"goal_id" : 1669,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 469,"kind" : ["Info"],"goal_id" : 1669,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1665,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [c1] copy X206^2"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1665,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1665,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1665,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c1"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X206^2 := [X207^2 | X208^2]"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1665,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1671"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1671,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c1 X207^2"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1671,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1672"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1672,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [] copy X208^2"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1671,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1671,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy c1 X207^2"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1671,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1671,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1671,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c1"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X207^2"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1671,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1673"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name c1"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1674"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1674,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1675"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1675,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c1 = X207^2"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1676"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1676,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 472,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name c1"]} +{"step" : 472,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 472,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 472,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 472,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1677"]} +{"step" : 472,"kind" : ["Info"],"goal_id" : 1677,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c1 = c1"]} +{"step" : 473,"kind" : ["Info"],"goal_id" : 1677,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c1 = c1"]} +{"step" : 473,"kind" : ["Info"],"goal_id" : 1677,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 473,"kind" : ["Info"],"goal_id" : 1677,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 473,"kind" : ["Info"],"goal_id" : 1677,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 474,"kind" : ["Info"],"goal_id" : 1674,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 474,"kind" : ["Info"],"goal_id" : 1674,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 474,"kind" : ["Info"],"goal_id" : 1674,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 475,"kind" : ["Info"],"goal_id" : 1675,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c1 = X207^2"]} +{"step" : 475,"kind" : ["Info"],"goal_id" : 1675,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 475,"kind" : ["Info"],"goal_id" : 1675,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 475,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X207 c0 c1 := c1"]} +{"step" : 475,"kind" : ["Info"],"goal_id" : 1675,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 476,"kind" : ["Info"],"goal_id" : 1676,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 476,"kind" : ["Info"],"goal_id" : 1676,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 476,"kind" : ["Info"],"goal_id" : 1676,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 477,"kind" : ["Info"],"goal_id" : 1672,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] copy X208^2"]} +{"step" : 477,"kind" : ["Info"],"goal_id" : 1672,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 477,"kind" : ["Info"],"goal_id" : 1672,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 477,"kind" : ["Info"],"goal_id" : 1672,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 477,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X208^2 := []"]} +{"step" : 477,"kind" : ["Info"],"goal_id" : 1672,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1635,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n (copy-pack-holes c0) X192^2"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1635,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1635,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1635,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy-pack-holes c0"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X192^2 := [X209^2 | X210^2]"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1635,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1678"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1678,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy-pack-holes c0 \n (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) X209^2"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1678,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1679"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1679,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [] (copy-pack-holes c0) X210^2"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1678,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1678,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy-pack-holes","copy-pack-holes c0 \n (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) X209^2"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1678,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1678,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1678,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:","(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2)."]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X209^2"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1678,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1680"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall-local-canonical X211^2"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1681"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1681,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.copy-clauses-for-unfold X211^2 X212^2"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1682"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1682,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["[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"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall-local-canonical","findall-local-canonical X211^2"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:","(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0)."]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X211^2"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1683"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1683,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.findall (local-canonical X214^2) X215^2"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1683,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1684"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1684,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map X215^2 local-canonical-gref X211^2"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1683,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 1683,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.findall","std.findall (local-canonical X214^2) X215^2"]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 1683,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 1683,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:"]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 1683,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:","(std.findall A0 A1) :- (findall_solutions A0 A1)."]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := local-canonical X214^2"]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X215^2"]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 1683,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1685"]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 1685,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall_solutions (local-canonical X214^2) X215^2"]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 1685,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 482,"kind" : ["Info"],"goal_id" : 1685,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall_solutions","findall_solutions (local-canonical X214^2) X215^2"]} +{"step" : 482,"kind" : ["Info"],"goal_id" : 1685,"runtime_id" : 8,"name" : "user:rule","payload" : ["findall"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 1687,"runtime_id" : 13,"name" : "user:newgoal","payload" : ["local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1687,"runtime_id" : 13,"name" : "user:curgoal","payload" : ["local-canonical","local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1687,"runtime_id" : 13,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1687,"runtime_id" : 13,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1687,"runtime_id" : 13,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 482,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X215^2 := []"]} +{"step" : 482,"kind" : ["Info"],"goal_id" : 1685,"runtime_id" : 8,"name" : "user:rule:findall","payload" : ["success"]} +{"step" : 483,"kind" : ["Info"],"goal_id" : 1684,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] local-canonical-gref X211^2"]} +{"step" : 483,"kind" : ["Info"],"goal_id" : 1684,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 483,"kind" : ["Info"],"goal_id" : 1684,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 483,"kind" : ["Info"],"goal_id" : 1684,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 483,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X211^2 := []"]} +{"step" : 483,"kind" : ["Info"],"goal_id" : 1684,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 484,"kind" : ["Info"],"goal_id" : 1681,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.copy-clauses-for-unfold","coq.copy-clauses-for-unfold [] X212^2"]} +{"step" : 484,"kind" : ["Info"],"goal_id" : 1681,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 484,"kind" : ["Info"],"goal_id" : 1681,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:"]} +{"step" : 484,"kind" : ["Info"],"goal_id" : 1681,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:","(coq.copy-clauses-for-unfold [] []) :- ."]} +{"step" : 484,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X212^2 := []"]} +{"step" : 484,"kind" : ["Info"],"goal_id" : 1681,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 485,"kind" : ["Info"],"goal_id" : 1682,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","[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"]} +{"step" : 485,"kind" : ["Info"],"goal_id" : 1682,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 485,"kind" : ["Info"],"goal_id" : 1682,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1688"]} +{"step" : 485,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2"]} +{"step" : 485,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:485)\", line 1, column 0, character 0:","File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:485)\", line 1, column 0, character 0:","(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)."]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A5 := const «Builders_18.HB_unnamed_factory_22»"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [c0, c1]"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X209^2 := app [global (const «Builders_18.HB_unnamed_factory_22») | X216^2]"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1689"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["pack? (const «Builders_18.HB_unnamed_factory_22») _"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1690"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1690,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1691"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1691,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.rev [c0, c1] [X217^2, c0 | X218^2]"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1692"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1692,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c0 X213^2"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1693"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1693,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map X218^2 copy X219^2"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1694"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1694,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.rev [global (const «elpi.hole»), X213^2 | X219^2] X216^2"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 487,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["pack?","pack? (const «Builders_18.HB_unnamed_factory_22») _"]} +{"step" : 487,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 487,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 487,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X209^2"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1695"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1])"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1696"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1696,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1697"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1697,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1] = X209^2"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1698"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1698,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 489,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1])"]} +{"step" : 489,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 489,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 489,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:","(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1)."]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X209^2 := app X220^2"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1699"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1699,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1699,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1700"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1700,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1] copy \n X220^2"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1699,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 491,"kind" : ["Info"],"goal_id" : 1699,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 491,"kind" : ["Info"],"goal_id" : 1699,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 491,"kind" : ["Info"],"goal_id" : 1699,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1700,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1] copy \n X220^2"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1700,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1700,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1700,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [c0, c1]"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X220^2 := [X221^2 | X222^2]"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1700,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1701"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy (global (const «Builders_18.HB_unnamed_factory_22»)) X221^2"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1702"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1702,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [c0, c1] copy X222^2"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (global (const «Builders_18.HB_unnamed_factory_22»)) X221^2"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X221^2"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1703"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name (global (const «Builders_18.HB_unnamed_factory_22»))"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1704"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1704,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1705"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1705,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["global (const «Builders_18.HB_unnamed_factory_22») = X221^2"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1706"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1706,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 494,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name (global (const «Builders_18.HB_unnamed_factory_22»))"]} +{"step" : 494,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 494,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 494,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (global (const «Builders_18.HB_unnamed_factory_22»)) X221^2"]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:"]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:","(copy (as (global _) A0) A0) :- (!)."]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X221^2 := global (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1707"]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 1707,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 1707,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 496,"kind" : ["Info"],"goal_id" : 1707,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 496,"kind" : ["Info"],"goal_id" : 1707,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 496,"kind" : ["Info"],"goal_id" : 1707,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1702,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [c0, c1] copy X222^2"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1702,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1702,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1702,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [c1]"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X222^2 := [X223^2 | X224^2]"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1702,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1708"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1708,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c0 X223^2"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1708,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1709"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1709,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [c1] copy X224^2"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1708,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1708,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy c0 X223^2"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1708,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1708,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1708,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X223^2"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1708,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1710"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name c0"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1711"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1711,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1712"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1712,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = X223^2"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1713"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1713,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 499,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name c0"]} +{"step" : 499,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 499,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 499,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 499,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1714"]} +{"step" : 499,"kind" : ["Info"],"goal_id" : 1714,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = c0"]} +{"step" : 500,"kind" : ["Info"],"goal_id" : 1714,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = c0"]} +{"step" : 500,"kind" : ["Info"],"goal_id" : 1714,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 500,"kind" : ["Info"],"goal_id" : 1714,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 500,"kind" : ["Info"],"goal_id" : 1714,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 501,"kind" : ["Info"],"goal_id" : 1711,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 501,"kind" : ["Info"],"goal_id" : 1711,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 501,"kind" : ["Info"],"goal_id" : 1711,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 502,"kind" : ["Info"],"goal_id" : 1712,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = X223^2"]} +{"step" : 502,"kind" : ["Info"],"goal_id" : 1712,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 502,"kind" : ["Info"],"goal_id" : 1712,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 502,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X223 c0 c1 := c0"]} +{"step" : 502,"kind" : ["Info"],"goal_id" : 1712,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 503,"kind" : ["Info"],"goal_id" : 1713,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 503,"kind" : ["Info"],"goal_id" : 1713,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 503,"kind" : ["Info"],"goal_id" : 1713,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1709,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [c1] copy X224^2"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1709,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1709,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1709,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c1"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X224^2 := [X225^2 | X226^2]"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1709,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1715"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1715,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c1 X225^2"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1715,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1716"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1716,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [] copy X226^2"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1715,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1715,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy c1 X225^2"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1715,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1715,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1715,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c1"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X225^2"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1715,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1717"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name c1"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1718"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1718,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1719"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1719,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c1 = X225^2"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1720"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1720,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 506,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name c1"]} +{"step" : 506,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 506,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 506,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 506,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1721"]} +{"step" : 506,"kind" : ["Info"],"goal_id" : 1721,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c1 = c1"]} +{"step" : 507,"kind" : ["Info"],"goal_id" : 1721,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c1 = c1"]} +{"step" : 507,"kind" : ["Info"],"goal_id" : 1721,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 507,"kind" : ["Info"],"goal_id" : 1721,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 507,"kind" : ["Info"],"goal_id" : 1721,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 508,"kind" : ["Info"],"goal_id" : 1718,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 508,"kind" : ["Info"],"goal_id" : 1718,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 508,"kind" : ["Info"],"goal_id" : 1718,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 509,"kind" : ["Info"],"goal_id" : 1719,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c1 = X225^2"]} +{"step" : 509,"kind" : ["Info"],"goal_id" : 1719,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 509,"kind" : ["Info"],"goal_id" : 1719,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 509,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X225 c0 c1 := c1"]} +{"step" : 509,"kind" : ["Info"],"goal_id" : 1719,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 510,"kind" : ["Info"],"goal_id" : 1720,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 510,"kind" : ["Info"],"goal_id" : 1720,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 510,"kind" : ["Info"],"goal_id" : 1720,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 511,"kind" : ["Info"],"goal_id" : 1716,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] copy X226^2"]} +{"step" : 511,"kind" : ["Info"],"goal_id" : 1716,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 511,"kind" : ["Info"],"goal_id" : 1716,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 511,"kind" : ["Info"],"goal_id" : 1716,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 511,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X226^2 := []"]} +{"step" : 511,"kind" : ["Info"],"goal_id" : 1716,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 512,"kind" : ["Info"],"goal_id" : 1679,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] (copy-pack-holes c0) X210^2"]} +{"step" : 512,"kind" : ["Info"],"goal_id" : 1679,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 512,"kind" : ["Info"],"goal_id" : 1679,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 512,"kind" : ["Info"],"goal_id" : 1679,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 512,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X210^2 := []"]} +{"step" : 512,"kind" : ["Info"],"goal_id" : 1679,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1613,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.spy","std.spy\n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1613,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1613,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 45, column 0, character 1682:","File \"builtin_stdlib.elpi\", line 49, column 0, character 1863:"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1613,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 45, column 0, character 1682:","(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0)."]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.take 0 \n [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"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1613,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1722"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["trace.counter run X227^2"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1723"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (not (X227^2 = 0)) (std.debug-print run= X227^2) true"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1724"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1724,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.debug-print ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1725"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1725,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] X175^1"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1726"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1726,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.debug-print ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 514,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["trace.counter","trace.counter run X227^2"]} +{"step" : 514,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 514,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["trace.counter"]} +{"step" : 514,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 514,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1727"]} +{"step" : 514,"kind" : ["Info"],"goal_id" : 1727,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X227^2 = 0"]} +{"step" : 515,"kind" : ["Info"],"goal_id" : 1727,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X227^2 = 0"]} +{"step" : 515,"kind" : ["Info"],"goal_id" : 1727,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 515,"kind" : ["Info"],"goal_id" : 1727,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 515,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X227^2 := 0"]} +{"step" : 515,"kind" : ["Info"],"goal_id" : 1727,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (not (0 = 0)) (std.debug-print run= 0) true"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := not (0 = 0)"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := std.debug-print run= 0"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1728"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["not (0 = 0)"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1729"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1729,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1730"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1730,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.debug-print run= 0"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["not","not (0 = 0)"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 52, column 0, character 609:","File \"elpi-builtin.elpi\", line 54, column 0, character 631:"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 52, column 0, character 609:","(not A0) :- A0, (!), fail."]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := 0 = 0"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1731"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1731,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["0 = 0"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1731,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1732"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1732,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1731,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1733"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1733,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["fail"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1731,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 518,"kind" : ["Info"],"goal_id" : 1731,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","0 = 0"]} +{"step" : 518,"kind" : ["Info"],"goal_id" : 1731,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 518,"kind" : ["Info"],"goal_id" : 1731,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 518,"kind" : ["Info"],"goal_id" : 1731,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 519,"kind" : ["Info"],"goal_id" : 1732,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 519,"kind" : ["Info"],"goal_id" : 1732,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 519,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1728","File \"elpi-builtin.elpi\", line 54, column 0, character 631:","(not _) :- ."]} +{"step" : 519,"kind" : ["Info"],"goal_id" : 1732,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 520,"kind" : ["Info"],"goal_id" : 1733,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["fail","fail"]} +{"step" : 520,"kind" : ["Info"],"goal_id" : 1733,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 520,"kind" : ["Info"],"goal_id" : 1733,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 520,"kind" : ["Info"],"goal_id" : 1733,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 521,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (not (0 = 0)) (std.debug-print run= 0) true"]} +{"step" : 521,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 521,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 521,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 521,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 521,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1734"]} +{"step" : 521,"kind" : ["Info"],"goal_id" : 1734,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 521,"kind" : ["Info"],"goal_id" : 1734,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 522,"kind" : ["Info"],"goal_id" : 1734,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 522,"kind" : ["Info"],"goal_id" : 1734,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 522,"kind" : ["Info"],"goal_id" : 1734,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 522,"kind" : ["Info"],"goal_id" : 1734,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 522,"kind" : ["Info"],"goal_id" : 1734,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1724,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.debug-print","std.debug-print ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1724,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1724,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 17, column 0, character 660:","File \"builtin_stdlib.elpi\", line 24, column 0, character 874:"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1724,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 17, column 0, character 660:","(std.debug-print A0 A1) :- (!), (coq.say A0 A1)."]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ----<<---- enter: "]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := std.take 0 \n [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"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1724,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1735"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1735,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1735,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1736"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1736,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.say ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1735,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 524,"kind" : ["Info"],"goal_id" : 1735,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 524,"kind" : ["Info"],"goal_id" : 1735,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 524,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1724","File \"builtin_stdlib.elpi\", line 24, column 0, character 874:","(std.debug-print A0 A1) :- (print A0 A1)."]} +{"step" : 524,"kind" : ["Info"],"goal_id" : 1735,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 525,"kind" : ["Info"],"goal_id" : 1736,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.say","coq.say ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)"]} +{"step" : 525,"kind" : ["Info"],"goal_id" : 1736,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 525,"kind" : ["Info"],"goal_id" : 1736,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.say"]} +{"step" : 525,"kind" : ["Info"],"goal_id" : 1736,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 526,"kind" : ["Info"],"goal_id" : 1725,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.take","std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] X175^1"]} +{"step" : 526,"kind" : ["Info"],"goal_id" : 1725,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 526,"kind" : ["Info"],"goal_id" : 1725,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 88, column 0, character 2914:","File \"builtin_stdlib.elpi\", line 89, column 0, character 2932:","File \"builtin_stdlib.elpi\", line 90, column 0, character 2985:"]} +{"step" : 526,"kind" : ["Info"],"goal_id" : 1725,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 88, column 0, character 2914:","(std.take 0 _ []) :- (!)."]} +{"step" : 526,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X175^1 := []"]} +{"step" : 526,"kind" : ["Info"],"goal_id" : 1725,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1737"]} +{"step" : 526,"kind" : ["Info"],"goal_id" : 1737,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 526,"kind" : ["Info"],"goal_id" : 1737,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 527,"kind" : ["Info"],"goal_id" : 1737,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 527,"kind" : ["Info"],"goal_id" : 1737,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 527,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1725","File \"builtin_stdlib.elpi\", line 89, column 0, character 2932:","(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3)."]} +{"step" : 527,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1725","File \"builtin_stdlib.elpi\", line 90, column 0, character 2985:","(std.take _ _ _) :- (std.fatal-error take run out of list items)."]} +{"step" : 527,"kind" : ["Info"],"goal_id" : 1737,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1726,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.debug-print","std.debug-print ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] [])"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1726,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1726,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 17, column 0, character 660:","File \"builtin_stdlib.elpi\", line 24, column 0, character 874:"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1726,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 17, column 0, character 660:","(std.debug-print A0 A1) :- (!), (coq.say A0 A1)."]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ---->>---- exit: "]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := std.take 0 \n [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 []"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1726,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1738"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1738,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1738,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1739"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1739,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.say ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] [])"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1738,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 529,"kind" : ["Info"],"goal_id" : 1738,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 529,"kind" : ["Info"],"goal_id" : 1738,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 529,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1726","File \"builtin_stdlib.elpi\", line 24, column 0, character 874:","(std.debug-print A0 A1) :- (print A0 A1)."]} +{"step" : 529,"kind" : ["Info"],"goal_id" : 1738,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 530,"kind" : ["Info"],"goal_id" : 1739,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.say","coq.say ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] [])"]} +{"step" : 530,"kind" : ["Info"],"goal_id" : 1739,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 530,"kind" : ["Info"],"goal_id" : 1739,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.say"]} +{"step" : 530,"kind" : ["Info"],"goal_id" : 1739,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 531,"kind" : ["Info"],"goal_id" : 1603,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 531,"kind" : ["Info"],"goal_id" : 1603,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 531,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1613","File \"builtin_stdlib.elpi\", line 49, column 0, character 1863:","(std.spy A0) :- (std.debug-print ---->>---- fail: A0), fail."]} +{"step" : 531,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1611","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «SelfA.axioms_») 0) :- ."]} +{"step" : 531,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1611","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «IsSelfA'.axioms_») 0) :- ."]} +{"step" : 531,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1602","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 531,"kind" : ["Info"],"goal_id" : 1603,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 532,"kind" : ["Info"],"goal_id" : 1600,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 532,"kind" : ["Info"],"goal_id" : 1600,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 532,"kind" : ["Info"],"goal_id" : 1600,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 533,"kind" : ["Info"],"goal_id" : 1601,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do! []"]} +{"step" : 533,"kind" : ["Info"],"goal_id" : 1601,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 533,"kind" : ["Info"],"goal_id" : 1601,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 255, column 0, character 8595:"]} +{"step" : 533,"kind" : ["Info"],"goal_id" : 1601,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 255, column 0, character 8595:","(std.do! []) :- ."]} +{"step" : 533,"kind" : ["Info"],"goal_id" : 1601,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1578,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map2","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"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1578,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1578,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 141, column 0, character 4745:"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1578,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 141, column 0, character 4745:","(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6)."]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (const «Builders_18.HB_unnamed_factory_20»)]"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := indt «HasB.axioms_»"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := [indt «HasA.axioms_»]"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := factory-provides.one [] c0"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X174^1 := [X228^1 | X229^1]"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1578,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1740"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1740,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_22»)) \n (indt «HasB.axioms_») X228^1"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1740,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1741"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1741,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map2 [global (const «Builders_18.HB_unnamed_factory_20»)] \n [indt «HasA.axioms_»] (factory-provides.one [] c0) X229^1"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1740,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 1740,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-provides.one","factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_22»)) \n (indt «HasB.axioms_») X228^1"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 1740,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 1740,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 108, column 0, character 3601:"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 1740,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 108, column 0, character 3601:","(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins])."]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := c0"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := global (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := indt «HasB.axioms_»"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X228^1 := triple (indt «HasB.axioms_») X230^1 c0"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 1740,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1742"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 1742,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) \n X231^1) Builder illtyped, \n (coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 1742,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1742,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) \n X231^1) Builder illtyped, \n (coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1742,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1742,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1742,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) \n X231^1) Builder illtyped"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [(coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1742,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1743"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1) \n Builder illtyped"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1744"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1744,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1745"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1745,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [(coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert-ok!","std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1) \n Builder illtyped"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!)."]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) \n X231^1"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := Builder illtyped"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1746"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1 \n X234^1"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1747"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1747,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1748"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1748,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X234^1 = ok ;\n X234^1 = error X235^1 , std.fatal-error-w-data Builder illtyped X235^1"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1749"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1749,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 538,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.typecheck","coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1 \n X234^1"]} +{"step" : 538,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 538,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.typecheck"]} +{"step" : 538,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 538,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1750"]} +{"step" : 538,"kind" : ["Info"],"goal_id" : 1750,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X231^1 =\n prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]"]} +{"step" : 538,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1751"]} +{"step" : 538,"kind" : ["Info"],"goal_id" : 1751,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X234^1 = ok"]} +{"step" : 539,"kind" : ["Info"],"goal_id" : 1750,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X231^1 =\n prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]"]} +{"step" : 539,"kind" : ["Info"],"goal_id" : 1750,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 539,"kind" : ["Info"],"goal_id" : 1750,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 539,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X231^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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]"]} +{"step" : 539,"kind" : ["Info"],"goal_id" : 1750,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 540,"kind" : ["Info"],"goal_id" : 1751,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X234^1 = ok"]} +{"step" : 540,"kind" : ["Info"],"goal_id" : 1751,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 540,"kind" : ["Info"],"goal_id" : 1751,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 540,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X234^1 := ok"]} +{"step" : 540,"kind" : ["Info"],"goal_id" : 1751,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 541,"kind" : ["Info"],"goal_id" : 1747,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 541,"kind" : ["Info"],"goal_id" : 1747,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 541,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1743","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:","(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned)."]} +{"step" : 541,"kind" : ["Info"],"goal_id" : 1747,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 542,"kind" : ["Info"],"goal_id" : 1748,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","ok = ok ; ok = error X235^1 , std.fatal-error-w-data Builder illtyped X235^1"]} +{"step" : 542,"kind" : ["Info"],"goal_id" : 1748,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 542,"kind" : ["Info"],"goal_id" : 1748,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 542,"kind" : ["Info"],"goal_id" : 1748,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 542,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ok = ok"]} +{"step" : 542,"kind" : ["Info"],"goal_id" : 1748,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1752"]} +{"step" : 542,"kind" : ["Info"],"goal_id" : 1752,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["ok = ok"]} +{"step" : 542,"kind" : ["Info"],"goal_id" : 1752,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 543,"kind" : ["Info"],"goal_id" : 1752,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","ok = ok"]} +{"step" : 543,"kind" : ["Info"],"goal_id" : 1752,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 543,"kind" : ["Info"],"goal_id" : 1752,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 543,"kind" : ["Info"],"goal_id" : 1752,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 544,"kind" : ["Info"],"goal_id" : 1749,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 544,"kind" : ["Info"],"goal_id" : 1749,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 544,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1748","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 544,"kind" : ["Info"],"goal_id" : 1749,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 545,"kind" : ["Info"],"goal_id" : 1744,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 545,"kind" : ["Info"],"goal_id" : 1744,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 545,"kind" : ["Info"],"goal_id" : 1744,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1745,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do!\n [(coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c1]) c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1745,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1745,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1745,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1745,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1753"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1754"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1754,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1755"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1755,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 547,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1"]} +{"step" : 547,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 547,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1756"]} +{"step" : 547,"kind" : ["Info"],"goal_id" : 1756,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1"]} +{"step" : 547,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1757"]} +{"step" : 547,"kind" : ["Info"],"goal_id" : 1757,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.subst-prod [c0] X232^1 X233^1"]} +{"step" : 547,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 1756,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.subst-prod","coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1"]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 1756,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 1756,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 36, column 0, character 1340:","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:"]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 1756,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 36, column 0, character 1340:","(coq.subst-prod [] A0 A0) :- (!)."]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]"]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X232^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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]"]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 1756,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1758"]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 1758,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 1758,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 549,"kind" : ["Info"],"goal_id" : 1758,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 549,"kind" : ["Info"],"goal_id" : 1758,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 549,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1756","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:","(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3)."]} +{"step" : 549,"kind" : ["Info"],"goal_id" : 1758,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1757,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.subst-prod","coq.subst-prod [c0] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X233^1"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1757,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1757,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 37, column 0, character 1368:","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:","File \"/build/source/./elpi/coq-lib.elpi\", line 39, column 0, character 1505:"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1757,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 37, column 0, character 1368:","(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3)."]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c1 \\\nprod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X233^1"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1757,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1759"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1759,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1759,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1760"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1760,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X233^1"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1759,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 551,"kind" : ["Info"],"goal_id" : 1759,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 551,"kind" : ["Info"],"goal_id" : 1759,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 551,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1757","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:","(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3)."]} +{"step" : 551,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1757","File \"/build/source/./elpi/coq-lib.elpi\", line 39, column 0, character 1505:","(coq.subst-prod [_ | _] A0 _) :- (!), \n (std.fatal-error-w-data subst-prod: not a product A0)."]} +{"step" : 551,"kind" : ["Info"],"goal_id" : 1759,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 1760,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.subst-prod","coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X233^1"]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 1760,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 1760,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 36, column 0, character 1340:","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:"]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 1760,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 36, column 0, character 1340:","(coq.subst-prod [] A0 A0) :- (!)."]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]"]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X233^1 := prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]"]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 1760,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1761"]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 1761,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 1761,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 553,"kind" : ["Info"],"goal_id" : 1761,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 553,"kind" : ["Info"],"goal_id" : 1761,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 553,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1760","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:","(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3)."]} +{"step" : 553,"kind" : ["Info"],"goal_id" : 1761,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 554,"kind" : ["Info"],"goal_id" : 1754,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 554,"kind" : ["Info"],"goal_id" : 1754,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 554,"kind" : ["Info"],"goal_id" : 1754,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1755,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do!\n [std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1755,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1755,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1755,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1755,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1762"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1763"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1763,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1764"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1764,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! []"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert!","std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 35, column 0, character 1155:"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 35, column 0, character 1155:","(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!)."]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := The conclusion of a builder is a mixin whose parameters depend on other mixins"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1765"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1765,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1 ;\n std.fatal-error-w-data\n The conclusion of a builder is a mixin whose parameters depend on other mixins \n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1)"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1765,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1766"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1766,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1765,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 557,"kind" : ["Info"],"goal_id" : 1765,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1 ;\n std.fatal-error-w-data\n The conclusion of a builder is a mixin whose parameters depend on other mixins \n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1)"]} +{"step" : 557,"kind" : ["Info"],"goal_id" : 1765,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 557,"kind" : ["Info"],"goal_id" : 1765,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 557,"kind" : ["Info"],"goal_id" : 1765,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 557,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 557,"kind" : ["Info"],"goal_id" : 1765,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1767"]} +{"step" : 557,"kind" : ["Info"],"goal_id" : 1767,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 557,"kind" : ["Info"],"goal_id" : 1767,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1767,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["extract-conclusion-params","extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1767,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1767,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 115, column 0, character 3974:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 117, column 0, character 4090:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 122, column 0, character 4303:"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1767,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 115, column 0, character 3974:","(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3)))."]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app [global (const «IsSelfA'.phant_axioms»), c0]"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c1 \\\napp\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X230^1"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1767,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1768"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1768,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1768,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1769"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1769,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["pi c1 \\\n decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1768,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 559,"kind" : ["Info"],"goal_id" : 1768,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 559,"kind" : ["Info"],"goal_id" : 1768,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 559,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1767","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 117, column 0, character 4090:","(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))."]} +{"step" : 559,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1767","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 122, column 0, character 4303:","(extract-conclusion-params A0 A1 A2) :- (whd1 A1 A3), (!), \n (extract-conclusion-params A0 A3 A2)."]} +{"step" : 559,"kind" : ["Info"],"goal_id" : 1768,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 560,"kind" : ["Info"],"goal_id" : 1769,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["pi","pi c1 \\\n decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 560,"kind" : ["Info"],"goal_id" : 1769,"runtime_id" : 8,"name" : "user:rule","payload" : ["pi"]} +{"step" : 560,"kind" : ["Info"],"goal_id" : 1769,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1770"]} +{"step" : 560,"kind" : ["Info"],"goal_id" : 1770,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 560,"kind" : ["Info"],"goal_id" : 1770,"runtime_id" : 8,"name" : "user:rule:pi","payload" : ["success"]} +{"step" : 561,"kind" : ["Info"],"goal_id" : 1770,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 561,"kind" : ["Info"],"goal_id" : 1770,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 561,"kind" : ["Info"],"goal_id" : 1770,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1771"]} +{"step" : 561,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 561,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["extract-conclusion-params","extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 115, column 0, character 3974:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 117, column 0, character 4090:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 122, column 0, character 4303:"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 115, column 0, character 3974:","(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3)))."]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["match\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] with prod _ A1 A2"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 117, column 0, character 4090:","(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))."]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := indt «HasB.axioms_»"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := [app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X230^1"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1772"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1773"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-alias->gref (indt «HasB.axioms_») X236^2"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1774"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-nparams X236^2 X237^2"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1775"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1775,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map\n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] (copy-pack-holes c0) X238^2"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1776"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1776,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.spy (std.take X237^2 X238^2 X230^1)"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 563,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 563,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 563,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1771","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 122, column 0, character 4303:","(extract-conclusion-params A0 A1 A2) :- (whd1 A1 A3), (!), \n (extract-conclusion-params A0 A3 A2)."]} +{"step" : 563,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-alias->gref","factory-alias->gref (indt «HasB.axioms_») X236^2"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 74, column 0, character 2385:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 74, column 0, character 2385:","(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!)."]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «HasB.axioms_»"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X236^2"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1777"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev X236^2 (indt «HasB.axioms_») _"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1778"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1778,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev X236^2 (indt «HasB.axioms_») _"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indt «HasA.axioms_»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with const «HasA.phant_axioms»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- ."]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indc «HasA.Axioms_»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with const «HasA.phant_Build»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indt «HasB.axioms_»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with const «HasB.phant_axioms»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- ."]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indc «HasB.Axioms_»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with const «HasB.phant_Build»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indt «IsSelfA.axioms_»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with const «IsSelfA.phant_axioms»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- ."]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indc «IsSelfA.Axioms_»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with const «IsSelfA.phant_Build»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indt «IsSelfA'.axioms_»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with const «IsSelfA'.phant_axioms»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- ."]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indc «IsSelfA'.Axioms_»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with const «IsSelfA'.phant_Build»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-alias->gref","factory-alias->gref (indt «HasB.axioms_») X236^2"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!)."]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «HasB.axioms_»"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indt «HasB.axioms_»"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1779"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev (indt «HasB.axioms_») _ _"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1780"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1780,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 567,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev (indt «HasB.axioms_») _ _"]} +{"step" : 567,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 567,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 567,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 567,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with indt «HasA.axioms_»"]} +{"step" : 567,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 567,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 568,"kind" : ["Info"],"goal_id" : 1780,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 568,"kind" : ["Info"],"goal_id" : 1780,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 568,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1779","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 568,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1779","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 568,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1773","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «A.axioms_») (indt «A.axioms_»)) :- ."]} +{"step" : 568,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1773","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «B.axioms_») (indt «B.axioms_»)) :- ."]} +{"step" : 568,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1773","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «SelfA.axioms_») (indt «SelfA.axioms_»)) :- ."]} +{"step" : 568,"kind" : ["Info"],"goal_id" : 1780,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-nparams","factory-nparams (indt «HasB.axioms_») X237^2"]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «HasA.axioms_») 1) :- ."]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with indt «HasA.axioms_»"]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «A.axioms_») 1) :- ."]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with indt «A.axioms_»"]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «HasB.axioms_») 1) :- ."]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X237^2 := 1"]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1775,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map\n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] (copy-pack-holes c0) X238^2"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1775,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1775,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1775,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [c0]"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy-pack-holes c0"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X238^2 := [X239^2 | X240^2]"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1775,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1781"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1781,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy-pack-holes c0 \n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1781,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1782"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1782,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [c0] (copy-pack-holes c0) X240^2"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1781,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1781,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy-pack-holes","copy-pack-holes c0 \n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1781,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1781,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1781,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:","(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2)."]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X239^2"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1781,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1783"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall-local-canonical X241^2"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1784"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1784,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.copy-clauses-for-unfold X241^2 X242^2"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1785"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1785,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X243^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X243^2 | c6] c3) | X242^2]\n =>\n copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall-local-canonical","findall-local-canonical X241^2"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:","(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0)."]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X241^2"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1786"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1786,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.findall (local-canonical X244^2) X245^2"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1786,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1787"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1787,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map X245^2 local-canonical-gref X241^2"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1786,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 1786,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.findall","std.findall (local-canonical X244^2) X245^2"]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 1786,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 1786,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:"]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 1786,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:","(std.findall A0 A1) :- (findall_solutions A0 A1)."]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := local-canonical X244^2"]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X245^2"]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 1786,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1788"]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 1788,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall_solutions (local-canonical X244^2) X245^2"]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 1788,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 574,"kind" : ["Info"],"goal_id" : 1788,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall_solutions","findall_solutions (local-canonical X244^2) X245^2"]} +{"step" : 574,"kind" : ["Info"],"goal_id" : 1788,"runtime_id" : 8,"name" : "user:rule","payload" : ["findall"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 1790,"runtime_id" : 14,"name" : "user:newgoal","payload" : ["local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1790,"runtime_id" : 14,"name" : "user:curgoal","payload" : ["local-canonical","local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1790,"runtime_id" : 14,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1790,"runtime_id" : 14,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1790,"runtime_id" : 14,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 574,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X245^2 := []"]} +{"step" : 574,"kind" : ["Info"],"goal_id" : 1788,"runtime_id" : 8,"name" : "user:rule:findall","payload" : ["success"]} +{"step" : 575,"kind" : ["Info"],"goal_id" : 1787,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] local-canonical-gref X241^2"]} +{"step" : 575,"kind" : ["Info"],"goal_id" : 1787,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 575,"kind" : ["Info"],"goal_id" : 1787,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 575,"kind" : ["Info"],"goal_id" : 1787,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 575,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X241^2 := []"]} +{"step" : 575,"kind" : ["Info"],"goal_id" : 1787,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 576,"kind" : ["Info"],"goal_id" : 1784,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.copy-clauses-for-unfold","coq.copy-clauses-for-unfold [] X242^2"]} +{"step" : 576,"kind" : ["Info"],"goal_id" : 1784,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 576,"kind" : ["Info"],"goal_id" : 1784,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:"]} +{"step" : 576,"kind" : ["Info"],"goal_id" : 1784,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:","(coq.copy-clauses-for-unfold [] []) :- ."]} +{"step" : 576,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X242^2 := []"]} +{"step" : 576,"kind" : ["Info"],"goal_id" : 1784,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 577,"kind" : ["Info"],"goal_id" : 1785,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X243^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X243^2 | c6] c3)] =>\n copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2"]} +{"step" : 577,"kind" : ["Info"],"goal_id" : 1785,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 577,"kind" : ["Info"],"goal_id" : 1785,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1791"]} +{"step" : 577,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2"]} +{"step" : 577,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:577)\", line 1, column 0, character 0:","File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:577)\", line 1, column 0, character 0:","(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X243^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X243^2 | A4] A1)."]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A5 := const «Builders_18.Builders_18_T__canonical__interleave_context_A»"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [c0, c1]"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X239^2 := app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A») | X246^2]"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1792"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["pack? (const «Builders_18.Builders_18_T__canonical__interleave_context_A») \n _"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1793"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1793,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1794"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1794,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.rev [c0, c1] [X247^2, c0 | X248^2]"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1795"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1795,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c0 X243^2"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1796"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1796,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map X248^2 copy X249^2"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1797"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1797,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.rev [global (const «elpi.hole»), X243^2 | X249^2] X246^2"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 579,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["pack?","pack? (const «Builders_18.Builders_18_T__canonical__interleave_context_A») \n _"]} +{"step" : 579,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 579,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 579,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X239^2"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1798"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1])"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1799"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1799,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1800"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1800,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1] = X239^2"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1801"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1801,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 581,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1])"]} +{"step" : 581,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 581,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 581,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:","(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1)."]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X239^2 := app X250^2"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1802"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1802,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1802,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1803"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1803,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1] copy X250^2"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1802,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 583,"kind" : ["Info"],"goal_id" : 1802,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 583,"kind" : ["Info"],"goal_id" : 1802,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 583,"kind" : ["Info"],"goal_id" : 1802,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1803,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1] copy X250^2"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1803,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1803,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1803,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [c0, c1]"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X250^2 := [X251^2 | X252^2]"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1803,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1804"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)) \n X251^2"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1805"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1805,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [c0, c1] copy X252^2"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)) \n X251^2"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X251^2"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1806"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»))"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1807"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1807,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1808"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1808,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["global (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)\n = X251^2"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1809"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1809,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 586,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»))"]} +{"step" : 586,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 586,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 586,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)) \n X251^2"]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:"]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:","(copy (as (global _) A0) A0) :- (!)."]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)"]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X251^2 := global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»)"]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1810"]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 1810,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 1810,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 588,"kind" : ["Info"],"goal_id" : 1810,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 588,"kind" : ["Info"],"goal_id" : 1810,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 588,"kind" : ["Info"],"goal_id" : 1810,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1805,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [c0, c1] copy X252^2"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1805,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1805,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1805,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [c1]"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X252^2 := [X253^2 | X254^2]"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1805,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1811"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1811,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c0 X253^2"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1811,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1812"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1812,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [c1] copy X254^2"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1811,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1811,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy c0 X253^2"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1811,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1811,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1811,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X253^2"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1811,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1813"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name c0"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1814"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1814,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1815"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1815,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = X253^2"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1816"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1816,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 591,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name c0"]} +{"step" : 591,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 591,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 591,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 591,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1817"]} +{"step" : 591,"kind" : ["Info"],"goal_id" : 1817,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = c0"]} +{"step" : 592,"kind" : ["Info"],"goal_id" : 1817,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = c0"]} +{"step" : 592,"kind" : ["Info"],"goal_id" : 1817,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 592,"kind" : ["Info"],"goal_id" : 1817,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 592,"kind" : ["Info"],"goal_id" : 1817,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 593,"kind" : ["Info"],"goal_id" : 1814,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 593,"kind" : ["Info"],"goal_id" : 1814,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 593,"kind" : ["Info"],"goal_id" : 1814,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 594,"kind" : ["Info"],"goal_id" : 1815,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = X253^2"]} +{"step" : 594,"kind" : ["Info"],"goal_id" : 1815,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 594,"kind" : ["Info"],"goal_id" : 1815,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 594,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X253 c0 c1 := c0"]} +{"step" : 594,"kind" : ["Info"],"goal_id" : 1815,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 595,"kind" : ["Info"],"goal_id" : 1816,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 595,"kind" : ["Info"],"goal_id" : 1816,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 595,"kind" : ["Info"],"goal_id" : 1816,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1812,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [c1] copy X254^2"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1812,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1812,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1812,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c1"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X254^2 := [X255^2 | X256^2]"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1812,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1818"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1818,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c1 X255^2"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1818,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1819"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1819,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [] copy X256^2"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1818,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1818,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy c1 X255^2"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1818,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1818,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1818,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c1"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X255^2"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1818,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1820"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name c1"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1821"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1821,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1822"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1822,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c1 = X255^2"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1823"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1823,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 598,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name c1"]} +{"step" : 598,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 598,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 598,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 598,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1824"]} +{"step" : 598,"kind" : ["Info"],"goal_id" : 1824,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c1 = c1"]} +{"step" : 599,"kind" : ["Info"],"goal_id" : 1824,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c1 = c1"]} +{"step" : 599,"kind" : ["Info"],"goal_id" : 1824,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 599,"kind" : ["Info"],"goal_id" : 1824,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 599,"kind" : ["Info"],"goal_id" : 1824,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 600,"kind" : ["Info"],"goal_id" : 1821,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 600,"kind" : ["Info"],"goal_id" : 1821,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 600,"kind" : ["Info"],"goal_id" : 1821,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 601,"kind" : ["Info"],"goal_id" : 1822,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c1 = X255^2"]} +{"step" : 601,"kind" : ["Info"],"goal_id" : 1822,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 601,"kind" : ["Info"],"goal_id" : 1822,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 601,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X255 c0 c1 := c1"]} +{"step" : 601,"kind" : ["Info"],"goal_id" : 1822,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 602,"kind" : ["Info"],"goal_id" : 1823,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 602,"kind" : ["Info"],"goal_id" : 1823,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 602,"kind" : ["Info"],"goal_id" : 1823,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 603,"kind" : ["Info"],"goal_id" : 1819,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] copy X256^2"]} +{"step" : 603,"kind" : ["Info"],"goal_id" : 1819,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 603,"kind" : ["Info"],"goal_id" : 1819,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 603,"kind" : ["Info"],"goal_id" : 1819,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 603,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X256^2 := []"]} +{"step" : 603,"kind" : ["Info"],"goal_id" : 1819,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1782,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [c0] (copy-pack-holes c0) X240^2"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1782,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1782,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1782,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy-pack-holes c0"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X240^2 := [X257^2 | X258^2]"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1782,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1825"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1825,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy-pack-holes c0 c0 X257^2"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1825,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1826"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1826,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [] (copy-pack-holes c0) X258^2"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1825,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1825,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy-pack-holes","copy-pack-holes c0 c0 X257^2"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1825,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1825,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1825,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:","(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2)."]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := c0"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X257^2"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1825,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1827"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall-local-canonical X259^2"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1828"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1828,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.copy-clauses-for-unfold X259^2 X260^2"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1829"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1829,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X261^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X261^2 | c6] c3) | X260^2]\n => copy c0 X257^2"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall-local-canonical","findall-local-canonical X259^2"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:","(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0)."]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X259^2"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1830"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1830,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.findall (local-canonical X262^2) X263^2"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1830,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1831"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1831,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map X263^2 local-canonical-gref X259^2"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1830,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 1830,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.findall","std.findall (local-canonical X262^2) X263^2"]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 1830,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 1830,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:"]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 1830,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:","(std.findall A0 A1) :- (findall_solutions A0 A1)."]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := local-canonical X262^2"]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X263^2"]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 1830,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1832"]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 1832,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall_solutions (local-canonical X262^2) X263^2"]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 1832,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 608,"kind" : ["Info"],"goal_id" : 1832,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall_solutions","findall_solutions (local-canonical X262^2) X263^2"]} +{"step" : 608,"kind" : ["Info"],"goal_id" : 1832,"runtime_id" : 8,"name" : "user:rule","payload" : ["findall"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 1834,"runtime_id" : 15,"name" : "user:newgoal","payload" : ["local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1834,"runtime_id" : 15,"name" : "user:curgoal","payload" : ["local-canonical","local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1834,"runtime_id" : 15,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1834,"runtime_id" : 15,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1834,"runtime_id" : 15,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 608,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X263^2 := []"]} +{"step" : 608,"kind" : ["Info"],"goal_id" : 1832,"runtime_id" : 8,"name" : "user:rule:findall","payload" : ["success"]} +{"step" : 609,"kind" : ["Info"],"goal_id" : 1831,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] local-canonical-gref X259^2"]} +{"step" : 609,"kind" : ["Info"],"goal_id" : 1831,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 609,"kind" : ["Info"],"goal_id" : 1831,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 609,"kind" : ["Info"],"goal_id" : 1831,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 609,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X259^2 := []"]} +{"step" : 609,"kind" : ["Info"],"goal_id" : 1831,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 610,"kind" : ["Info"],"goal_id" : 1828,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.copy-clauses-for-unfold","coq.copy-clauses-for-unfold [] X260^2"]} +{"step" : 610,"kind" : ["Info"],"goal_id" : 1828,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 610,"kind" : ["Info"],"goal_id" : 1828,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:"]} +{"step" : 610,"kind" : ["Info"],"goal_id" : 1828,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:","(coq.copy-clauses-for-unfold [] []) :- ."]} +{"step" : 610,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X260^2 := []"]} +{"step" : 610,"kind" : ["Info"],"goal_id" : 1828,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 611,"kind" : ["Info"],"goal_id" : 1829,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X261^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X261^2 | c6] c3)] =>\n copy c0 X257^2"]} +{"step" : 611,"kind" : ["Info"],"goal_id" : 1829,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 611,"kind" : ["Info"],"goal_id" : 1829,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1835"]} +{"step" : 611,"kind" : ["Info"],"goal_id" : 1835,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c0 X257^2"]} +{"step" : 611,"kind" : ["Info"],"goal_id" : 1835,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1835,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy c0 X257^2"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1835,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1835,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1835,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X257^2"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1835,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1836"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name c0"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1837"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1837,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1838"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1838,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = X257^2"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1839"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1839,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 613,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name c0"]} +{"step" : 613,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 613,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 613,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 613,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1840"]} +{"step" : 613,"kind" : ["Info"],"goal_id" : 1840,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = c0"]} +{"step" : 614,"kind" : ["Info"],"goal_id" : 1840,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = c0"]} +{"step" : 614,"kind" : ["Info"],"goal_id" : 1840,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 614,"kind" : ["Info"],"goal_id" : 1840,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 614,"kind" : ["Info"],"goal_id" : 1840,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 615,"kind" : ["Info"],"goal_id" : 1837,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 615,"kind" : ["Info"],"goal_id" : 1837,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 615,"kind" : ["Info"],"goal_id" : 1837,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 616,"kind" : ["Info"],"goal_id" : 1838,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = X257^2"]} +{"step" : 616,"kind" : ["Info"],"goal_id" : 1838,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 616,"kind" : ["Info"],"goal_id" : 1838,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 616,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X257 c0 c1 := c0"]} +{"step" : 616,"kind" : ["Info"],"goal_id" : 1838,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 617,"kind" : ["Info"],"goal_id" : 1839,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 617,"kind" : ["Info"],"goal_id" : 1839,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 617,"kind" : ["Info"],"goal_id" : 1839,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 618,"kind" : ["Info"],"goal_id" : 1826,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] (copy-pack-holes c0) X258^2"]} +{"step" : 618,"kind" : ["Info"],"goal_id" : 1826,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 618,"kind" : ["Info"],"goal_id" : 1826,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 618,"kind" : ["Info"],"goal_id" : 1826,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 618,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X258^2 := []"]} +{"step" : 618,"kind" : ["Info"],"goal_id" : 1826,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1776,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.spy","std.spy\n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1776,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1776,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 45, column 0, character 1682:","File \"builtin_stdlib.elpi\", line 49, column 0, character 1863:"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1776,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 45, column 0, character 1682:","(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0)."]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.take 1 \n [app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1776,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1841"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["trace.counter run X264^2"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1842"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (not (X264^2 = 0)) (std.debug-print run= X264^2) true"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1843"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1843,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.debug-print ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1844"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1844,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1845"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1845,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.debug-print ---->>---- exit: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 620,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["trace.counter","trace.counter run X264^2"]} +{"step" : 620,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 620,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["trace.counter"]} +{"step" : 620,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 620,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1846"]} +{"step" : 620,"kind" : ["Info"],"goal_id" : 1846,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X264^2 = 0"]} +{"step" : 621,"kind" : ["Info"],"goal_id" : 1846,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X264^2 = 0"]} +{"step" : 621,"kind" : ["Info"],"goal_id" : 1846,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 621,"kind" : ["Info"],"goal_id" : 1846,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 621,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X264^2 := 0"]} +{"step" : 621,"kind" : ["Info"],"goal_id" : 1846,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (not (0 = 0)) (std.debug-print run= 0) true"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := not (0 = 0)"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := std.debug-print run= 0"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1847"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["not (0 = 0)"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1848"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1848,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1849"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1849,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.debug-print run= 0"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["not","not (0 = 0)"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 52, column 0, character 609:","File \"elpi-builtin.elpi\", line 54, column 0, character 631:"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 52, column 0, character 609:","(not A0) :- A0, (!), fail."]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := 0 = 0"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1850"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1850,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["0 = 0"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1850,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1851"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1851,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1850,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1852"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1852,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["fail"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1850,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 624,"kind" : ["Info"],"goal_id" : 1850,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","0 = 0"]} +{"step" : 624,"kind" : ["Info"],"goal_id" : 1850,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 624,"kind" : ["Info"],"goal_id" : 1850,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 624,"kind" : ["Info"],"goal_id" : 1850,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 625,"kind" : ["Info"],"goal_id" : 1851,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 625,"kind" : ["Info"],"goal_id" : 1851,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 625,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1847","File \"elpi-builtin.elpi\", line 54, column 0, character 631:","(not _) :- ."]} +{"step" : 625,"kind" : ["Info"],"goal_id" : 1851,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 626,"kind" : ["Info"],"goal_id" : 1852,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["fail","fail"]} +{"step" : 626,"kind" : ["Info"],"goal_id" : 1852,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 626,"kind" : ["Info"],"goal_id" : 1852,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 626,"kind" : ["Info"],"goal_id" : 1852,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 627,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (not (0 = 0)) (std.debug-print run= 0) true"]} +{"step" : 627,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 627,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 627,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 627,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 627,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1853"]} +{"step" : 627,"kind" : ["Info"],"goal_id" : 1853,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 627,"kind" : ["Info"],"goal_id" : 1853,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 628,"kind" : ["Info"],"goal_id" : 1853,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 628,"kind" : ["Info"],"goal_id" : 1853,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 628,"kind" : ["Info"],"goal_id" : 1853,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 628,"kind" : ["Info"],"goal_id" : 1853,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 628,"kind" : ["Info"],"goal_id" : 1853,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1843,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.debug-print","std.debug-print ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1843,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1843,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 17, column 0, character 660:","File \"builtin_stdlib.elpi\", line 24, column 0, character 874:"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1843,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 17, column 0, character 660:","(std.debug-print A0 A1) :- (!), (coq.say A0 A1)."]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ----<<---- enter: "]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := std.take 1 \n [app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1843,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1854"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1854,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1854,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1855"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1855,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.say ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1854,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 630,"kind" : ["Info"],"goal_id" : 1854,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 630,"kind" : ["Info"],"goal_id" : 1854,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 630,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1843","File \"builtin_stdlib.elpi\", line 24, column 0, character 874:","(std.debug-print A0 A1) :- (print A0 A1)."]} +{"step" : 630,"kind" : ["Info"],"goal_id" : 1854,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 631,"kind" : ["Info"],"goal_id" : 1855,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.say","coq.say ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)"]} +{"step" : 631,"kind" : ["Info"],"goal_id" : 1855,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 631,"kind" : ["Info"],"goal_id" : 1855,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.say"]} +{"step" : 631,"kind" : ["Info"],"goal_id" : 1855,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1844,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.take","std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1844,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1844,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 89, column 0, character 2932:","File \"builtin_stdlib.elpi\", line 90, column 0, character 2985:"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1844,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 89, column 0, character 2932:","(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3)."]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := 1"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := [c0]"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1844,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify X230^1 with [app EXN PRINTING: Elpi__Runtime.HO.RestrictionFailure"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1844,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 90, column 0, character 2985:","(std.take _ _ _) :- (std.fatal-error take run out of list items)."]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1844,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1856"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1856,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.fatal-error take run out of list items"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1856,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1856,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.fatal-error","std.fatal-error take run out of list items"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1856,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1856,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 9, column 0, character 465:","File \"builtin_stdlib.elpi\", line 16, column 0, character 659:"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1856,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 9, column 0, character 465:","(std.fatal-error A0) :- (!), (stop A0)."]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := take run out of list items"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1856,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1857"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1857,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1857,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1858"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["stop take run out of list items"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1857,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 634,"kind" : ["Info"],"goal_id" : 1857,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 634,"kind" : ["Info"],"goal_id" : 1857,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 634,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1856","File \"builtin_stdlib.elpi\", line 16, column 0, character 659:","(std.fatal-error A0) :- (halt A0)."]} +{"step" : 634,"kind" : ["Info"],"goal_id" : 1857,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["stop","stop take run out of list items"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 67, column 0, character 960:","File \"/build/source/./elpi/coq-lib.elpi\", line 22, column 0, character 794:","File \"/build/source/./elpi/coq-lib.elpi\", line 23, column 0, character 852:"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 67, column 0, character 960:","stop :- (halt)."]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 22, column 0, character 794:","(stop A0) :- (get-option ltac:fail A1), (!), (coq.ltac.fail A1 A0)."]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := take run out of list items"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1859"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1859,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option ltac:fail X265^2"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1859,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1860"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1860,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1859,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1861"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1861,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.ltac.fail X265^2 take run out of list items"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1859,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 636,"kind" : ["Info"],"goal_id" : 1859,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option ltac:fail X265^2"]} +{"step" : 636,"kind" : ["Info"],"goal_id" : 1859,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 636,"kind" : ["Info"],"goal_id" : 1859,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 636,"kind" : ["Info"],"goal_id" : 1859,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 637,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["stop","stop take run out of list items"]} +{"step" : 637,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 637,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 23, column 0, character 852:"]} +{"step" : 637,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 23, column 0, character 852:","(stop A0) :- (coq.error A0)."]} +{"step" : 637,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := take run out of list items"]} +{"step" : 637,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1862"]} +{"step" : 637,"kind" : ["Info"],"goal_id" : 1862,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.error take run out of list items"]} +{"step" : 637,"kind" : ["Info"],"goal_id" : 1862,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 638,"kind" : ["Info"],"goal_id" : 1862,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.error","coq.error take run out of list items"]} +{"step" : 638,"kind" : ["Info"],"goal_id" : 1862,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 638,"kind" : ["Info"],"goal_id" : 1862,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.error"]} diff --git a/src/tests/sources/broken_trace2.json b/src/tests/sources/broken_trace2.json new file mode 100644 index 0000000..35c595b --- /dev/null +++ b/src/tests/sources/broken_trace2.json @@ -0,0 +1,5338 @@ +{"step" : 0,"kind" : ["Info"],"goal_id" : 1121,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)]"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1121,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","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)]"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1121,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1121,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1122"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1122,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)]"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1122,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1122,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["main","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)]"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1122,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1122,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"./structures.v\", line 594, column 0, character 2:","File \"./structures.v\", line 596, column 0, character 140:","File \"./structures.v\", line 600, column 0, character 368:"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1122,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"./structures.v\", line 594, column 0, character 2:","(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _)))."]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := _"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := arity X1"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1122,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1123"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1123,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1123,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1124"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1124,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) _))"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1123,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 1123,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 1123,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1122","File \"./structures.v\", line 596, column 0, character 140:","(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)))."]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1122","File \"./structures.v\", line 600, column 0, character 368:","(main _) :- (coq.error\n Usage: HB.instance Definition := T ...)."]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 1123,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1124,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["with-attributes","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) _))"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1124,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1124,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 14, column 0, character 453:"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1124,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 14, column 0, character 453:","(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0))."]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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) _)"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1124,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1125"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["attributes X2"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1126"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1126,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["pi c0 \\\n pi c1 \\\n pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi c8 \\ 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"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1127"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1127,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1128"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1128,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) _))"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["attributes","attributes X2"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:1)\", line 1, column 0, character 0:"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:1)\", line 1, column 0, character 0:","(attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)]) :- ."]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X2 := [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)]"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 1125,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 1126,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","pi c0 \\\n pi c1 \\\n pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi c8 \\ 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"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 1126,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 1126,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1129"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 1129,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 1129,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1129,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.parse-attributes","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"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1129,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1129,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 633, column 0, character 27114:"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1129,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 633, column 0, character 27114:","(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!)."]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)]"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X3"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1129,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1130"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1131"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1131,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X4 =>\n parse-attributes.aux\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] X3"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1132"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1132,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att verbose bool"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X4 := [X5 | X6]"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1130,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1133"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1133,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X5 = supported-attribute (att verbose bool)"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1133,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1134"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1134,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 1133,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 1133,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X5 = supported-attribute (att verbose bool)"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 1133,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 1133,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X5 := supported-attribute (att verbose bool)"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 1133,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1134,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1134,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1134,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1134,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att mathcomp bool"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X6 := [X7 | X8]"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1134,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1135"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1135,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X7 = supported-attribute (att mathcomp bool)"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1135,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1136"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1136,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 1135,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 1135,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X7 = supported-attribute (att mathcomp bool)"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 1135,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 1135,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X7 := supported-attribute (att mathcomp bool)"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 1135,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1136,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1136,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1136,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1136,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att mathcomp.axiom string"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X8 := [X9 | X10]"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1136,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1137"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1137,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X9 = supported-attribute (att mathcomp.axiom string)"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1137,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1138"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1138,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 1137,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 1137,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X9 = supported-attribute (att mathcomp.axiom string)"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 1137,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 1137,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X9 := supported-attribute (att mathcomp.axiom string)"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 1137,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1138,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1138,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1138,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1138,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att short.type string"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X10 := [X11 | X12]"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1138,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1139"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1139,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X11 = supported-attribute (att short.type string)"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1139,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1140"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1140,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 1139,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 1139,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X11 = supported-attribute (att short.type string)"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 1139,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 1139,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X11 := supported-attribute (att short.type string)"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 1139,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1140,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1140,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1140,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1140,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att short.pack string"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X12 := [X13 | X14]"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1140,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1141"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1141,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X13 = supported-attribute (att short.pack string)"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1141,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1142"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1142,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 1141,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 1141,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X13 = supported-attribute (att short.pack string)"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 1141,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 1141,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X13 := supported-attribute (att short.pack string)"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 1141,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1142,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1142,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1142,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1142,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att infer attmap"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X14 := [X15 | X16]"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1142,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1143"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1143,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X15 = supported-attribute (att infer attmap)"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1143,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1144"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1144,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 1143,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 1143,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X15 = supported-attribute (att infer attmap)"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 1143,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 1143,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X15 := supported-attribute (att infer attmap)"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 1143,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1144,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1144,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1144,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1144,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att key string"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X16 := [X17 | X18]"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1144,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1145"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1145,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X17 = supported-attribute (att key string)"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1145,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1146"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1146,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 1145,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 1145,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X17 = supported-attribute (att key string)"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 1145,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 1145,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X17 := supported-attribute (att key string)"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 1145,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1146,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1146,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1146,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1146,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att arg_sort bool"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X18 := [X19 | X20]"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1146,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1147"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1147,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X19 = supported-attribute (att arg_sort bool)"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1147,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1148"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1148,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 1147,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 1147,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X19 = supported-attribute (att arg_sort bool)"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 1147,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 1147,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X19 := supported-attribute (att arg_sort bool)"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 1147,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1148,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1148,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1148,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1148,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att log bool"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X20 := [X21 | X22]"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1148,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1149"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1149,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X21 = supported-attribute (att log bool)"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1149,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1150"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1150,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 1149,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 1149,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X21 = supported-attribute (att log bool)"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 1149,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 1149,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X21 := supported-attribute (att log bool)"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 1149,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1150,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1150,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1150,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1150,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att log.raw bool"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X22 := [X23 | X24]"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1150,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1151"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1151,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X23 = supported-attribute (att log.raw bool)"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1151,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1152"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1152,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 1151,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 1151,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X23 = supported-attribute (att log.raw bool)"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 1151,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 1151,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X23 := supported-attribute (att log.raw bool)"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 1151,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1152,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1152,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1152,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1152,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att compress_coercions bool"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X24 := [X25 | X26]"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1152,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1153"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1153,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X25 = supported-attribute (att compress_coercions bool)"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1153,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1154"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1154,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 1153,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 1153,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X25 = supported-attribute (att compress_coercions bool)"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 1153,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 1153,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X25 := supported-attribute (att compress_coercions bool)"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 1153,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1154,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1154,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1154,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1154,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att export bool"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X26 := [X27 | X28]"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1154,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1155"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1155,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X27 = supported-attribute (att export bool)"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1155,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1156"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1156,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 1155,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 1155,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X27 = supported-attribute (att export bool)"]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 1155,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 1155,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X27 := supported-attribute (att export bool)"]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 1155,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1156,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1156,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1156,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1156,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att skip string"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X28 := [X29 | X30]"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1156,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1157"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1157,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X29 = supported-attribute (att skip string)"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1157,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1158"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1158,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 1157,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 1157,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X29 = supported-attribute (att skip string)"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 1157,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 1157,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X29 := supported-attribute (att skip string)"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 1157,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1158,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1158,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1158,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1158,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att local bool"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool]"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X30 := [X31 | X32]"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1158,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1159"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1159,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X31 = supported-attribute (att local bool)"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1159,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1160"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1160,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 1159,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 35,"kind" : ["Info"],"goal_id" : 1159,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X31 = supported-attribute (att local bool)"]} +{"step" : 35,"kind" : ["Info"],"goal_id" : 1159,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 35,"kind" : ["Info"],"goal_id" : 1159,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 35,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X31 := supported-attribute (att local bool)"]} +{"step" : 35,"kind" : ["Info"],"goal_id" : 1159,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1160,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1160,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1160,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1160,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att fail bool"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [att doc string, att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool]"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X32 := [X33 | X34]"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1160,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1161"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1161,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X33 = supported-attribute (att fail bool)"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1161,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1162"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1162,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 1161,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 37,"kind" : ["Info"],"goal_id" : 1161,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X33 = supported-attribute (att fail bool)"]} +{"step" : 37,"kind" : ["Info"],"goal_id" : 1161,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 37,"kind" : ["Info"],"goal_id" : 1161,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 37,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X33 := supported-attribute (att fail bool)"]} +{"step" : 37,"kind" : ["Info"],"goal_id" : 1161,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1162,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1162,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1162,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1162,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att doc string"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool]"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X34 := [X35 | X36]"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1162,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1163"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1163,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X35 = supported-attribute (att doc string)"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1163,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1164"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1164,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 38,"kind" : ["Info"],"goal_id" : 1163,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 39,"kind" : ["Info"],"goal_id" : 1163,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X35 = supported-attribute (att doc string)"]} +{"step" : 39,"kind" : ["Info"],"goal_id" : 1163,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 39,"kind" : ["Info"],"goal_id" : 1163,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 39,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X35 := supported-attribute (att doc string)"]} +{"step" : 39,"kind" : ["Info"],"goal_id" : 1163,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1164,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1164,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1164,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1164,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att primitive_class bool"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [att primitive bool, att non_forgetful_inheritance bool, att hnf bool]"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X36 := [X37 | X38]"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1164,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1165"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1165,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X37 = supported-attribute (att primitive_class bool)"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1165,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1166"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1166,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map\n [att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X38"]} +{"step" : 40,"kind" : ["Info"],"goal_id" : 1165,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 41,"kind" : ["Info"],"goal_id" : 1165,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X37 = supported-attribute (att primitive_class bool)"]} +{"step" : 41,"kind" : ["Info"],"goal_id" : 1165,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 41,"kind" : ["Info"],"goal_id" : 1165,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 41,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X37 := supported-attribute (att primitive_class bool)"]} +{"step" : 41,"kind" : ["Info"],"goal_id" : 1165,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1166,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map\n [att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X38"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1166,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1166,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1166,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att primitive bool"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [att non_forgetful_inheritance bool, att hnf bool]"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X38 := [X39 | X40]"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1166,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1167"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1167,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X39 = supported-attribute (att primitive bool)"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1167,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1168"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1168,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X40"]} +{"step" : 42,"kind" : ["Info"],"goal_id" : 1167,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 43,"kind" : ["Info"],"goal_id" : 1167,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X39 = supported-attribute (att primitive bool)"]} +{"step" : 43,"kind" : ["Info"],"goal_id" : 1167,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 43,"kind" : ["Info"],"goal_id" : 1167,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 43,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X39 := supported-attribute (att primitive bool)"]} +{"step" : 43,"kind" : ["Info"],"goal_id" : 1167,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1168,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X40"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1168,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1168,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1168,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att non_forgetful_inheritance bool"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [att hnf bool]"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X40 := [X41 | X42]"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1168,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1169"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1169,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X41 = supported-attribute (att non_forgetful_inheritance bool)"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1169,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1170"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1170,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [att hnf bool] (c0 \\ c1 \\ c1 = supported-attribute c0) X42"]} +{"step" : 44,"kind" : ["Info"],"goal_id" : 1169,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 45,"kind" : ["Info"],"goal_id" : 1169,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X41 = supported-attribute (att non_forgetful_inheritance bool)"]} +{"step" : 45,"kind" : ["Info"],"goal_id" : 1169,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 45,"kind" : ["Info"],"goal_id" : 1169,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 45,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X41 := supported-attribute (att non_forgetful_inheritance bool)"]} +{"step" : 45,"kind" : ["Info"],"goal_id" : 1169,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1170,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [att hnf bool] (c0 \\ c1 \\ c1 = supported-attribute c0) X42"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1170,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1170,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1170,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := att hnf bool"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\ c1 \\\nc1 = supported-attribute c0"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X42 := [X43 | X44]"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1170,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1171"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1171,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X43 = supported-attribute (att hnf bool)"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1171,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1172"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1172,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [] (c0 \\ c1 \\ c1 = supported-attribute c0) X44"]} +{"step" : 46,"kind" : ["Info"],"goal_id" : 1171,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 47,"kind" : ["Info"],"goal_id" : 1171,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X43 = supported-attribute (att hnf bool)"]} +{"step" : 47,"kind" : ["Info"],"goal_id" : 1171,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 47,"kind" : ["Info"],"goal_id" : 1171,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 47,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X43 := supported-attribute (att hnf bool)"]} +{"step" : 47,"kind" : ["Info"],"goal_id" : 1171,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 48,"kind" : ["Info"],"goal_id" : 1172,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] (c0 \\ c1 \\ c1 = supported-attribute c0) X44"]} +{"step" : 48,"kind" : ["Info"],"goal_id" : 1172,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 48,"kind" : ["Info"],"goal_id" : 1172,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 48,"kind" : ["Info"],"goal_id" : 1172,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 48,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X44 := []"]} +{"step" : 48,"kind" : ["Info"],"goal_id" : 1172,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 49,"kind" : ["Info"],"goal_id" : 1131,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","[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"]} +{"step" : 49,"kind" : ["Info"],"goal_id" : 1131,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 49,"kind" : ["Info"],"goal_id" : 1131,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1173"]} +{"step" : 49,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["parse-attributes.aux\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] X3"]} +{"step" : 49,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["parse-attributes.aux","parse-attributes.aux\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] X3"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:6)\", line 1, column 0, character 0:","File \"/build/source/./elpi/coq-lib.elpi\", line 637, column 0, character 27263:","File \"/build/source/./elpi/coq-lib.elpi\", line 641, column 0, character 27574:","File \"/build/source/./elpi/coq-lib.elpi\", line 646, column 0, character 27781:","File \"/build/source/./elpi/coq-lib.elpi\", line 652, column 0, character 28097:"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:6)\", line 1, column 0, character 0:","(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)."]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := elpi.loc"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] with\n [attribute elpi.loc (node A1) | A2]"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 637, column 0, character 27263:","(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)."]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := elpi.loc"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] with\n [attribute elpi.loc (node A1) | A2]"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 641, column 0, character 27574:","(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)."]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := elpi.loc"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] with\n [attribute elpi.loc (node A1) | A2]"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 646, column 0, character 27781:","(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)."]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := elpi.loc"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["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]"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 652, column 0, character 28097:","(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)."]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := elpi.loc"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := File \"(stdin)\", line 1, column 2, character 3:"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := []"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := "]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X3"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1173,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1174"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1175"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1175,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if ( = ) (X45 = elpi.loc) (X45 is ^ . ^ elpi.loc)"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1176"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1176,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.valid-loc-attribute X45 File \"(stdin)\", line 1, column 2, character 3: \n X46"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1177"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (X46 = error X47) (coq.error X47) true"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1178"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1178,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X3 = [get-option X45 File \"(stdin)\", line 1, column 2, character 3: | X48]"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1179"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1179,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["parse-attributes.aux [] X48"]} +{"step" : 50,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 51,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 51,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 51,"kind" : ["Info"],"goal_id" : 1174,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1175,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if ( = ) (X45 = elpi.loc) (X45 is ^ . ^ elpi.loc)"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1175,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1175,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1175,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := = "]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X45 = elpi.loc"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1175,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1180"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1180,"runtime_id" : 8,"name" : "user:newgoal","payload" : [" = "]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1180,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1181"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1181,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1180,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1182"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1182,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X45 = elpi.loc"]} +{"step" : 52,"kind" : ["Info"],"goal_id" : 1180,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 53,"kind" : ["Info"],"goal_id" : 1180,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["="," = "]} +{"step" : 53,"kind" : ["Info"],"goal_id" : 1180,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 53,"kind" : ["Info"],"goal_id" : 1180,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 53,"kind" : ["Info"],"goal_id" : 1180,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 54,"kind" : ["Info"],"goal_id" : 1181,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 54,"kind" : ["Info"],"goal_id" : 1181,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 54,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1175","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 54,"kind" : ["Info"],"goal_id" : 1181,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 55,"kind" : ["Info"],"goal_id" : 1182,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X45 = elpi.loc"]} +{"step" : 55,"kind" : ["Info"],"goal_id" : 1182,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 55,"kind" : ["Info"],"goal_id" : 1182,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 55,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X45 := elpi.loc"]} +{"step" : 55,"kind" : ["Info"],"goal_id" : 1182,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 1176,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.valid-loc-attribute","coq.valid-loc-attribute elpi.loc \n File \"(stdin)\", line 1, column 2, character 3: X46"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 1176,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 1176,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 594, column 0, character 25390:"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 1176,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 594, column 0, character 25390:","(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)))."]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := elpi.loc"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := File \"(stdin)\", line 1, column 2, character 3:"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X46"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 1176,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1183"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 1183,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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))"]} +{"step" : 56,"kind" : ["Info"],"goal_id" : 1183,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1183,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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))"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1183,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1183,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1183,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := supported-attribute (att elpi.loc loc)"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1183,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1184"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["supported-attribute (att elpi.loc loc)"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1185"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1185,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1186"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1186,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)"]} +{"step" : 57,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["supported-attribute","supported-attribute (att elpi.loc loc)"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"(context step_id:49)\", line 1, column 0, character 0:","File \"/build/source/./elpi/coq-lib.elpi\", line 573, column 0, character 24545:","File \"/build/source/./elpi/coq-lib.elpi\", line 574, column 0, character 24587:"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att verbose bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att verbose bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att mathcomp bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att mathcomp bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att mathcomp.axiom string)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att mathcomp.axiom string"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att short.type string)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att short.type string"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att short.pack string)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att short.pack string"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att infer attmap)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att infer attmap"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att key string)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att key string"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att arg_sort bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att arg_sort bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att log bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att log bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att log.raw bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att log.raw bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att compress_coercions bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att compress_coercions bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att export bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att export bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att skip string)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att skip string"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att local bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att local bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att fail bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att fail bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att doc string)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att doc string"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att primitive_class bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att primitive_class bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att primitive bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att primitive bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att non_forgetful_inheritance bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att non_forgetful_inheritance bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:49)\", line 1, column 0, character 0:","(supported-attribute (att hnf bool)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify att elpi.loc loc with att hnf bool"]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 573, column 0, character 24545:","(supported-attribute (att elpi.loc loc)) :- ."]} +{"step" : 58,"kind" : ["Info"],"goal_id" : 1184,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 59,"kind" : ["Info"],"goal_id" : 1185,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 59,"kind" : ["Info"],"goal_id" : 1185,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 59,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1184","File \"/build/source/./elpi/coq-lib.elpi\", line 574, column 0, character 24587:","(supported-attribute (att A0 string)) :- (rex_match ^elpi\\. A0)."]} +{"step" : 59,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1183","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 59,"kind" : ["Info"],"goal_id" : 1185,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1186,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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)"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1186,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1186,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1186,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X46 = ok"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1186,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1187"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1188"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1188,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1189"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1189,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X46 = ok"]} +{"step" : 60,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["primitive?","primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t"]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 373, column 0, character 8225:"]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 373, column 0, character 8225:","(primitive? A0 A1) :- (is_cdata A0 (ctype A1))."]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := File \"(stdin)\", line 1, column 2, character 3:"]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := Loc.t"]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 1187,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1190"]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 1190,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["is_cdata File \"(stdin)\", line 1, column 2, character 3: (ctype Loc.t)"]} +{"step" : 61,"kind" : ["Info"],"goal_id" : 1190,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 62,"kind" : ["Info"],"goal_id" : 1190,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["is_cdata","is_cdata File \"(stdin)\", line 1, column 2, character 3: (ctype Loc.t)"]} +{"step" : 62,"kind" : ["Info"],"goal_id" : 1190,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 62,"kind" : ["Info"],"goal_id" : 1190,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["is_cdata"]} +{"step" : 62,"kind" : ["Info"],"goal_id" : 1190,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 62,"kind" : ["Info"],"goal_id" : 1190,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1191"]} +{"step" : 62,"kind" : ["Info"],"goal_id" : 1191,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["ctype Loc.t = ctype Loc.t"]} +{"step" : 63,"kind" : ["Info"],"goal_id" : 1191,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","ctype Loc.t = ctype Loc.t"]} +{"step" : 63,"kind" : ["Info"],"goal_id" : 1191,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 63,"kind" : ["Info"],"goal_id" : 1191,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 63,"kind" : ["Info"],"goal_id" : 1191,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 64,"kind" : ["Info"],"goal_id" : 1188,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 64,"kind" : ["Info"],"goal_id" : 1188,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 64,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1186","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 64,"kind" : ["Info"],"goal_id" : 1188,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 65,"kind" : ["Info"],"goal_id" : 1189,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X46 = ok"]} +{"step" : 65,"kind" : ["Info"],"goal_id" : 1189,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 65,"kind" : ["Info"],"goal_id" : 1189,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 65,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X46 := ok"]} +{"step" : 65,"kind" : ["Info"],"goal_id" : 1189,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (ok = error X47) (coq.error X47) true"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ok = error X47"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := coq.error X47"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1192"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["ok = error X47"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1193"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1193,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1194"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1194,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.error X47"]} +{"step" : 66,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 67,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","ok = error X47"]} +{"step" : 67,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 67,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 67,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify ok with error X47"]} +{"step" : 67,"kind" : ["Info"],"goal_id" : 1192,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["fail"]} +{"step" : 68,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (ok = error X47) (coq.error X47) true"]} +{"step" : 68,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 68,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 68,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 68,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 68,"kind" : ["Info"],"goal_id" : 1177,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1195"]} +{"step" : 68,"kind" : ["Info"],"goal_id" : 1195,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 68,"kind" : ["Info"],"goal_id" : 1195,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 69,"kind" : ["Info"],"goal_id" : 1195,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 69,"kind" : ["Info"],"goal_id" : 1195,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 69,"kind" : ["Info"],"goal_id" : 1195,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 69,"kind" : ["Info"],"goal_id" : 1195,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 69,"kind" : ["Info"],"goal_id" : 1195,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 70,"kind" : ["Info"],"goal_id" : 1178,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X3 =\n [get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3: | X48]"]} +{"step" : 70,"kind" : ["Info"],"goal_id" : 1178,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 70,"kind" : ["Info"],"goal_id" : 1178,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 70,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X3 := [get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3: | X48]"]} +{"step" : 70,"kind" : ["Info"],"goal_id" : 1178,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 71,"kind" : ["Info"],"goal_id" : 1179,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["parse-attributes.aux","parse-attributes.aux [] X48"]} +{"step" : 71,"kind" : ["Info"],"goal_id" : 1179,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 71,"kind" : ["Info"],"goal_id" : 1179,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 636, column 0, character 27233:"]} +{"step" : 71,"kind" : ["Info"],"goal_id" : 1179,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 636, column 0, character 27233:","(parse-attributes.aux [] _ []) :- ."]} +{"step" : 71,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X48 := []"]} +{"step" : 71,"kind" : ["Info"],"goal_id" : 1179,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 72,"kind" : ["Info"],"goal_id" : 1132,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 72,"kind" : ["Info"],"goal_id" : 1132,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 72,"kind" : ["Info"],"goal_id" : 1132,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 73,"kind" : ["Info"],"goal_id" : 1127,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 73,"kind" : ["Info"],"goal_id" : 1127,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 73,"kind" : ["Info"],"goal_id" : 1127,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 74,"kind" : ["Info"],"goal_id" : 1128,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","[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) _))"]} +{"step" : 74,"kind" : ["Info"],"goal_id" : 1128,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 74,"kind" : ["Info"],"goal_id" : 1128,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1196"]} +{"step" : 74,"kind" : ["Info"],"goal_id" : 1196,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) _)"]} +{"step" : 74,"kind" : ["Info"],"goal_id" : 1196,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 75,"kind" : ["Info"],"goal_id" : 1196,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","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) _)"]} +{"step" : 75,"kind" : ["Info"],"goal_id" : 1196,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 75,"kind" : ["Info"],"goal_id" : 1196,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1197"]} +{"step" : 75,"kind" : ["Info"],"goal_id" : 1197,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["save-docstring"]} +{"step" : 75,"kind" : ["Info"],"goal_id" : 1196,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1198"]} +{"step" : 75,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) _)"]} +{"step" : 75,"kind" : ["Info"],"goal_id" : 1196,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 76,"kind" : ["Info"],"goal_id" : 1197,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["save-docstring","save-docstring"]} +{"step" : 76,"kind" : ["Info"],"goal_id" : 1197,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 76,"kind" : ["Info"],"goal_id" : 1197,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 81, column 0, character 2429:"]} +{"step" : 76,"kind" : ["Info"],"goal_id" : 1197,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 81, column 0, character 2429:","save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true)."]} +{"step" : 76,"kind" : ["Info"],"goal_id" : 1197,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1199"]} +{"step" : 76,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (get-option elpi.loc X52 , get-option doc X53) \n (acc-clause _ (docstring X52 X53)) true"]} +{"step" : 76,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (get-option elpi.loc X52 , get-option doc X53) \n (acc-clause _ (docstring X52 X53)) true"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := get-option elpi.loc X52 , get-option doc X53"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := acc-clause _ (docstring X52 X53)"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1200"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.loc X52 , get-option doc X53"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1201"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1201,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1202"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1202,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["acc-clause _ (docstring X52 X53)"]} +{"step" : 77,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 78,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","get-option elpi.loc X52 , get-option doc X53"]} +{"step" : 78,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 78,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1203"]} +{"step" : 78,"kind" : ["Info"],"goal_id" : 1203,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.loc X52"]} +{"step" : 78,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1204"]} +{"step" : 78,"kind" : ["Info"],"goal_id" : 1204,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option doc X53"]} +{"step" : 78,"kind" : ["Info"],"goal_id" : 1200,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 79,"kind" : ["Info"],"goal_id" : 1203,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option elpi.loc X52"]} +{"step" : 79,"kind" : ["Info"],"goal_id" : 1203,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 79,"kind" : ["Info"],"goal_id" : 1203,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:74)\", line 1, column 0, character 0:"]} +{"step" : 79,"kind" : ["Info"],"goal_id" : 1203,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:74)\", line 1, column 0, character 0:","(get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:) :- ."]} +{"step" : 79,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X52 := File \"(stdin)\", line 1, column 2, character 3:"]} +{"step" : 79,"kind" : ["Info"],"goal_id" : 1203,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 80,"kind" : ["Info"],"goal_id" : 1204,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option doc X53"]} +{"step" : 80,"kind" : ["Info"],"goal_id" : 1204,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 80,"kind" : ["Info"],"goal_id" : 1204,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 80,"kind" : ["Info"],"goal_id" : 1204,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 81,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (get-option elpi.loc X52 , get-option doc X53) \n (acc-clause _ (docstring X52 X53)) true"]} +{"step" : 81,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 81,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 81,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 81,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 81,"kind" : ["Info"],"goal_id" : 1199,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1205"]} +{"step" : 81,"kind" : ["Info"],"goal_id" : 1205,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 81,"kind" : ["Info"],"goal_id" : 1205,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 82,"kind" : ["Info"],"goal_id" : 1205,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 82,"kind" : ["Info"],"goal_id" : 1205,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 82,"kind" : ["Info"],"goal_id" : 1205,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 82,"kind" : ["Info"],"goal_id" : 1205,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 82,"kind" : ["Info"],"goal_id" : 1205,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["with-logging","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) _)"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 267, column 0, character 10575:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 283, column 0, character 11151:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 289, column 0, character 11419:"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 267, column 0, character 10575:","(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)."]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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) _"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1206"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.hb.log _ , X54 = tt ; get-option elpi.hb.log.raw _ , X54 = ff"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1207"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1207,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1208"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1208,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.loc X55"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1209"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1209,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["loc.fields X55 X56 _ _ _ _"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1210"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1210,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.any->string X55 X57"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1211"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1211,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X58 is X56 ^ .hb"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1212"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1212,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["open_append X58 X59"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1213"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1213,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.string.concat \n [, HIERARCHY BUILDER PATCH v1, X57, ] X60"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1214"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1214,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["output X59 X60"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1215"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1215,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["close_out X59"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1216"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1216,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) _"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1217"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1217,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.private.logger-close X61"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1218"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1218,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.intersperse coq.pp.spc X61 X62"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1219"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1219,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.pp->string (coq.pp.box (coq.pp.v 0) X62) X63"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1220"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1220,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["open_append X58 X64"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1221"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1221,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["output X64 X63"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1222"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1222,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["close_out X64"]} +{"step" : 83,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 84,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","get-option elpi.hb.log _ , X54 = tt ; get-option elpi.hb.log.raw _ , X54 = ff"]} +{"step" : 84,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 84,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 84,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 84,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := get-option elpi.hb.log _ , X54 = tt"]} +{"step" : 84,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1223"]} +{"step" : 84,"kind" : ["Info"],"goal_id" : 1223,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.hb.log _ , X54 = tt"]} +{"step" : 84,"kind" : ["Info"],"goal_id" : 1223,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 85,"kind" : ["Info"],"goal_id" : 1223,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","get-option elpi.hb.log _ , X54 = tt"]} +{"step" : 85,"kind" : ["Info"],"goal_id" : 1223,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 85,"kind" : ["Info"],"goal_id" : 1223,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1224"]} +{"step" : 85,"kind" : ["Info"],"goal_id" : 1224,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.hb.log _"]} +{"step" : 85,"kind" : ["Info"],"goal_id" : 1223,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1225"]} +{"step" : 85,"kind" : ["Info"],"goal_id" : 1225,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X54 = tt"]} +{"step" : 85,"kind" : ["Info"],"goal_id" : 1223,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 86,"kind" : ["Info"],"goal_id" : 1224,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option elpi.hb.log _"]} +{"step" : 86,"kind" : ["Info"],"goal_id" : 1224,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 86,"kind" : ["Info"],"goal_id" : 1224,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 86,"kind" : ["Info"],"goal_id" : 1224,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 87,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","get-option elpi.hb.log _ , X54 = tt ; get-option elpi.hb.log.raw _ , X54 = ff"]} +{"step" : 87,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 87,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 87,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 87,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := get-option elpi.hb.log.raw _ , X54 = ff"]} +{"step" : 87,"kind" : ["Info"],"goal_id" : 1206,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1226"]} +{"step" : 87,"kind" : ["Info"],"goal_id" : 1226,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.hb.log.raw _ , X54 = ff"]} +{"step" : 87,"kind" : ["Info"],"goal_id" : 1226,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 88,"kind" : ["Info"],"goal_id" : 1226,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","get-option elpi.hb.log.raw _ , X54 = ff"]} +{"step" : 88,"kind" : ["Info"],"goal_id" : 1226,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 88,"kind" : ["Info"],"goal_id" : 1226,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1227"]} +{"step" : 88,"kind" : ["Info"],"goal_id" : 1227,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.hb.log.raw _"]} +{"step" : 88,"kind" : ["Info"],"goal_id" : 1226,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1228"]} +{"step" : 88,"kind" : ["Info"],"goal_id" : 1228,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X54 = ff"]} +{"step" : 88,"kind" : ["Info"],"goal_id" : 1226,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 89,"kind" : ["Info"],"goal_id" : 1227,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option elpi.hb.log.raw _"]} +{"step" : 89,"kind" : ["Info"],"goal_id" : 1227,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 89,"kind" : ["Info"],"goal_id" : 1227,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 89,"kind" : ["Info"],"goal_id" : 1227,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["with-logging","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) _)"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 283, column 0, character 11151:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 289, column 0, character 11419:"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 283, column 0, character 11151:","(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*))."]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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) _"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1229"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option log tt , X65 = tt ; get-option log.raw tt , X65 = ff"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1230"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1230,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1231"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1231,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) _"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1232"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1232,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.private.logger-close X66"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1233"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1233,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.intersperse coq.pp.spc X66 X67"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1234"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1234,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.pp->string (coq.pp.box (coq.pp.v 0) X67) X68"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1235"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1235,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.say (* \n X68 \n*)"]} +{"step" : 90,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 91,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","get-option log tt , X65 = tt ; get-option log.raw tt , X65 = ff"]} +{"step" : 91,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 91,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 91,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 91,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := get-option log tt , X65 = tt"]} +{"step" : 91,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1236"]} +{"step" : 91,"kind" : ["Info"],"goal_id" : 1236,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option log tt , X65 = tt"]} +{"step" : 91,"kind" : ["Info"],"goal_id" : 1236,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 92,"kind" : ["Info"],"goal_id" : 1236,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","get-option log tt , X65 = tt"]} +{"step" : 92,"kind" : ["Info"],"goal_id" : 1236,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 92,"kind" : ["Info"],"goal_id" : 1236,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1237"]} +{"step" : 92,"kind" : ["Info"],"goal_id" : 1237,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option log tt"]} +{"step" : 92,"kind" : ["Info"],"goal_id" : 1236,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1238"]} +{"step" : 92,"kind" : ["Info"],"goal_id" : 1238,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X65 = tt"]} +{"step" : 92,"kind" : ["Info"],"goal_id" : 1236,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 93,"kind" : ["Info"],"goal_id" : 1237,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option log tt"]} +{"step" : 93,"kind" : ["Info"],"goal_id" : 1237,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 93,"kind" : ["Info"],"goal_id" : 1237,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 93,"kind" : ["Info"],"goal_id" : 1237,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 94,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","get-option log tt , X65 = tt ; get-option log.raw tt , X65 = ff"]} +{"step" : 94,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 94,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 94,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 94,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := get-option log.raw tt , X65 = ff"]} +{"step" : 94,"kind" : ["Info"],"goal_id" : 1229,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1239"]} +{"step" : 94,"kind" : ["Info"],"goal_id" : 1239,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option log.raw tt , X65 = ff"]} +{"step" : 94,"kind" : ["Info"],"goal_id" : 1239,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 95,"kind" : ["Info"],"goal_id" : 1239,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","get-option log.raw tt , X65 = ff"]} +{"step" : 95,"kind" : ["Info"],"goal_id" : 1239,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 95,"kind" : ["Info"],"goal_id" : 1239,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1240"]} +{"step" : 95,"kind" : ["Info"],"goal_id" : 1240,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option log.raw tt"]} +{"step" : 95,"kind" : ["Info"],"goal_id" : 1239,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1241"]} +{"step" : 95,"kind" : ["Info"],"goal_id" : 1241,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X65 = ff"]} +{"step" : 95,"kind" : ["Info"],"goal_id" : 1239,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 96,"kind" : ["Info"],"goal_id" : 1240,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option log.raw tt"]} +{"step" : 96,"kind" : ["Info"],"goal_id" : 1240,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 96,"kind" : ["Info"],"goal_id" : 1240,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 96,"kind" : ["Info"],"goal_id" : 1240,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 97,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["with-logging","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) _)"]} +{"step" : 97,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 97,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 289, column 0, character 11419:"]} +{"step" : 97,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 289, column 0, character 11419:","(with-logging A0) :- A0."]} +{"step" : 97,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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) _"]} +{"step" : 97,"kind" : ["Info"],"goal_id" : 1198,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1242"]} +{"step" : 97,"kind" : ["Info"],"goal_id" : 1242,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) _"]} +{"step" : 97,"kind" : ["Info"],"goal_id" : 1242,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 1242,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.declare-const","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) _"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 1242,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 1242,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 25, column 0, character 1064:"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 1242,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 25, column 0, character 1064:","(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20])."]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := _"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := arity X1"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 1242,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1243"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 1243,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 98,"kind" : ["Info"],"goal_id" : 1243,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1243,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1243,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1243,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1243,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.assert-ok! (coq.elaborate-arity-skeleton (arity X1) _ X69) \n Definition type illtyped"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1243,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1244"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.assert-ok! (coq.elaborate-arity-skeleton (arity X1) _ X69) \n Definition type illtyped"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1245"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1245,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1246"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1246,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 99,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert-ok!","std.assert-ok! (coq.elaborate-arity-skeleton (arity X1) _ X69) \n Definition type illtyped"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!)."]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.elaborate-arity-skeleton (arity X1) _ X69"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := Definition type illtyped"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1244,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1247"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.elaborate-arity-skeleton (arity X1) _ X69 X92"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1248"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1248,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1249"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1249,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X92 = ok ;\n X92 = error X93 , std.fatal-error-w-data Definition type illtyped X93"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1250"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1250,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 100,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.elaborate-arity-skeleton","coq.elaborate-arity-skeleton (arity X1) _ X69 X92"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 363, column 0, character 15598:"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 363, column 0, character 15598:","(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3)."]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X1"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X69 := arity X94"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X92"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 1247,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1251"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.elaborate-ty-skeleton X1 X95 X94 X92"]} +{"step" : 101,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.elaborate-ty-skeleton","coq.elaborate-ty-skeleton X1 X95 X94 X92"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.elaborate-ty-skeleton"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1252"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1252,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X95 = typ «interleave_context.403»"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1253"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1253,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X94 = X96"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1254"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1254,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1251,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1255"]} +{"step" : 102,"kind" : ["Info"],"goal_id" : 1255,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X92 = ok"]} +{"step" : 103,"kind" : ["Info"],"goal_id" : 1252,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X95 = typ «interleave_context.403»"]} +{"step" : 103,"kind" : ["Info"],"goal_id" : 1252,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 103,"kind" : ["Info"],"goal_id" : 1252,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 103,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X95 := typ «interleave_context.403»"]} +{"step" : 103,"kind" : ["Info"],"goal_id" : 1252,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 104,"kind" : ["Info"],"goal_id" : 1253,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X94 = X96"]} +{"step" : 104,"kind" : ["Info"],"goal_id" : 1253,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 104,"kind" : ["Info"],"goal_id" : 1253,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 104,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X94 := X96"]} +{"step" : 104,"kind" : ["Info"],"goal_id" : 1253,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 1254,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["declare-evar","declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 1254,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 1254,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"coq-builtin.elpi\", line 163, column 0, character 6258:"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 1254,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"coq-builtin.elpi\", line 163, column 0, character 6258:","(declare-evar A0 A1 A2 A3) :- (declare_constraint (declare-evar A0 A1 A2 A3) \n [A1])."]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X97"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := sort (typ «interleave_context.403»)"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X96"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 1254,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1256"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 1256,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["declare_constraint\n (declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)) [\n X97]"]} +{"step" : 105,"kind" : ["Info"],"goal_id" : 1256,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 106,"kind" : ["Info"],"goal_id" : 1256,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["declare_constraint","declare_constraint\n (declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)) [\n X97]"]} +{"step" : 106,"kind" : ["Info"],"goal_id" : 1256,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 106,"kind" : ["Info"],"goal_id" : 1256,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["declare_constraint"]} +{"step" : 106,"kind" : ["Info"],"goal_id" : 1256,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1257"]} +{"step" : 106,"kind" : ["Info"],"goal_id" : 1257,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)"]} +{"step" : 106,"kind" : ["Info"],"goal_id" : 1256,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 1257,"runtime_id" : 8,"name" : "user:CHR:try","payload" : ["File \"coq-builtin.elpi\", line 178, column 4, character 6801:"," \\ (declare-evar A0 A1 A2 A3) <=> (A0 => evar A1 A2 A3)"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 9,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 9,"name" : "user:assign","payload" : ["A1 := uvar frozen--1156 []"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 9,"name" : "user:assign","payload" : ["A2 := sort (typ «interleave_context.403»)"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 9,"name" : "user:assign","payload" : ["A3 := uvar frozen--1157 []"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 1259,"runtime_id" : 9,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1259,"runtime_id" : 9,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1259,"runtime_id" : 9,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1259,"runtime_id" : 9,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1259,"runtime_id" : 9,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1259,"runtime_id" : 9,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 1257,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1260"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 1260,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["_ => [] => evar X97 (sort (typ «interleave_context.403»)) X96"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 1257,"runtime_id" : 8,"name" : "user:CHR:rule-fired","payload" : ["File \"coq-builtin.elpi\", line 178, column 4, character 6801:"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 1257,"runtime_id" : 8,"name" : "user:CHR:rule-remove-constraints","payload" : ["1257"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:CHR:store:before","payload" : ["1257"," declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96) /* suspended on X97 */"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule","payload" : ["resume"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 1260,"runtime_id" : 8,"name" : "user:rule:resume:resumed","payload" : ["_ => [] => evar X97 (sort (typ «interleave_context.403»)) X96"]} +{"step" : 107,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:resume","payload" : ["success"]} +{"step" : 108,"kind" : ["Info"],"goal_id" : 1260,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","_ => [] => evar X97 (sort (typ «interleave_context.403»)) X96"]} +{"step" : 108,"kind" : ["Info"],"goal_id" : 1260,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 108,"kind" : ["Info"],"goal_id" : 1260,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1261"]} +{"step" : 108,"kind" : ["Info"],"goal_id" : 1261,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["[] => evar X97 (sort (typ «interleave_context.403»)) X96"]} +{"step" : 108,"kind" : ["Info"],"goal_id" : 1261,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 109,"kind" : ["Info"],"goal_id" : 1261,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","[] => evar X97 (sort (typ «interleave_context.403»)) X96"]} +{"step" : 109,"kind" : ["Info"],"goal_id" : 1261,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 109,"kind" : ["Info"],"goal_id" : 1261,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1262"]} +{"step" : 109,"kind" : ["Info"],"goal_id" : 1262,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["evar X97 (sort (typ «interleave_context.403»)) X96"]} +{"step" : 109,"kind" : ["Info"],"goal_id" : 1262,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1262,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["evar","evar X97 (sort (typ «interleave_context.403»)) X96"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1262,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1262,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"coq-builtin.elpi\", line 193, column 0, character 7432:","File \"coq-builtin.elpi\", line 197, column 0, character 7585:"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1262,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"coq-builtin.elpi\", line 193, column 0, character 7432:","(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true)."]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X97"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := sort (typ «interleave_context.403»)"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X96"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1262,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1263"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1263,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1263,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1264"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1264,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (var X96) \n (declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]) true"]} +{"step" : 110,"kind" : ["Info"],"goal_id" : 1263,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 111,"kind" : ["Info"],"goal_id" : 1263,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 111,"kind" : ["Info"],"goal_id" : 1263,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 111,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1262","File \"coq-builtin.elpi\", line 197, column 0, character 7585:","(evar _ _ _) :- ."]} +{"step" : 111,"kind" : ["Info"],"goal_id" : 1263,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1264,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (var X96) \n (declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]) true"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1264,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1264,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1264,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := var X96"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := declare_constraint\n (evar X97 (sort (typ «interleave_context.403»)) X96) [X97, X96]"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1264,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1265"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1265,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["var X96"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1265,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1266"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1266,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1265,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1267"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1267,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]"]} +{"step" : 112,"kind" : ["Info"],"goal_id" : 1265,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 113,"kind" : ["Info"],"goal_id" : 1265,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["var","var X96"]} +{"step" : 113,"kind" : ["Info"],"goal_id" : 1265,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 113,"kind" : ["Info"],"goal_id" : 1265,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["var"]} +{"step" : 113,"kind" : ["Info"],"goal_id" : 1265,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 114,"kind" : ["Info"],"goal_id" : 1266,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 114,"kind" : ["Info"],"goal_id" : 1266,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 114,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1264","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 114,"kind" : ["Info"],"goal_id" : 1266,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 115,"kind" : ["Info"],"goal_id" : 1267,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["declare_constraint","declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]"]} +{"step" : 115,"kind" : ["Info"],"goal_id" : 1267,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 115,"kind" : ["Info"],"goal_id" : 1267,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["declare_constraint"]} +{"step" : 115,"kind" : ["Info"],"goal_id" : 1267,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1268"]} +{"step" : 115,"kind" : ["Info"],"goal_id" : 1268,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["evar X97 (sort (typ «interleave_context.403»)) X96"]} +{"step" : 115,"kind" : ["Info"],"goal_id" : 1267,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 116,"kind" : ["Info"],"goal_id" : 1255,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X92 = ok"]} +{"step" : 116,"kind" : ["Info"],"goal_id" : 1255,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 116,"kind" : ["Info"],"goal_id" : 1255,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 116,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X92 := ok"]} +{"step" : 116,"kind" : ["Info"],"goal_id" : 1255,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 117,"kind" : ["Info"],"goal_id" : 1248,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 117,"kind" : ["Info"],"goal_id" : 1248,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 117,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1244","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:","(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned)."]} +{"step" : 117,"kind" : ["Info"],"goal_id" : 1248,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 118,"kind" : ["Info"],"goal_id" : 1249,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","ok = ok ;\n ok = error X93 , std.fatal-error-w-data Definition type illtyped X93"]} +{"step" : 118,"kind" : ["Info"],"goal_id" : 1249,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 118,"kind" : ["Info"],"goal_id" : 1249,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 118,"kind" : ["Info"],"goal_id" : 1249,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 118,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ok = ok"]} +{"step" : 118,"kind" : ["Info"],"goal_id" : 1249,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1269"]} +{"step" : 118,"kind" : ["Info"],"goal_id" : 1269,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["ok = ok"]} +{"step" : 118,"kind" : ["Info"],"goal_id" : 1269,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 119,"kind" : ["Info"],"goal_id" : 1269,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","ok = ok"]} +{"step" : 119,"kind" : ["Info"],"goal_id" : 1269,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 119,"kind" : ["Info"],"goal_id" : 1269,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 119,"kind" : ["Info"],"goal_id" : 1269,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 120,"kind" : ["Info"],"goal_id" : 1250,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 120,"kind" : ["Info"],"goal_id" : 1250,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 120,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1249","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 120,"kind" : ["Info"],"goal_id" : 1250,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 121,"kind" : ["Info"],"goal_id" : 1245,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 121,"kind" : ["Info"],"goal_id" : 1245,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 121,"kind" : ["Info"],"goal_id" : 1245,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1246,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1246,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1246,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1246,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.arity->term (arity (X96)) X70"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1246,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1270"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.arity->term (arity (X96)) X70"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1271"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1271,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1272"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1272,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 122,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 123,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.arity->term","coq.arity->term (arity (X96)) X70"]} +{"step" : 123,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 123,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 371, column 0, character 15907:"]} +{"step" : 123,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 371, column 0, character 15907:","(coq.arity->term (arity A0) A0) :- ."]} +{"step" : 123,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X96"]} +{"step" : 123,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X70 := X96"]} +{"step" : 123,"kind" : ["Info"],"goal_id" : 1270,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 124,"kind" : ["Info"],"goal_id" : 1271,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 124,"kind" : ["Info"],"goal_id" : 1271,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 124,"kind" : ["Info"],"goal_id" : 1271,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1272,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1272,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1272,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1272,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1272,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1273"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1274"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1274,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1275"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1275,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 125,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert-ok!","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"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!)."]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := Definition illtyped"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1273,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1276"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1277"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1277,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1278"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1278,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X98 = ok ; X98 = error X99 , std.fatal-error-w-data Definition illtyped X99"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1279"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1279,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 126,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.elaborate-skeleton","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"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.elaborate-skeleton"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1280"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1280,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X96 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1281"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1281,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X71 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1276,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1282"]} +{"step" : 127,"kind" : ["Info"],"goal_id" : 1282,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X98 = ok"]} +{"step" : 128,"kind" : ["Info"],"goal_id" : 1280,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X96 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 128,"kind" : ["Info"],"goal_id" : 1280,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 128,"kind" : ["Info"],"goal_id" : 1280,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 128,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign:HO","payload" : ["X96 := app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 128,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign:resume","payload" : ["1268"]} +{"step" : 128,"kind" : ["Info"],"goal_id" : 1280,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 129,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule","payload" : ["resume"]} +{"step" : 129,"kind" : ["Info"],"goal_id" : 1268,"runtime_id" : 8,"name" : "user:rule:resume:resumed","payload" : ["evar X97 (sort (typ «interleave_context.403»)) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 129,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:resume","payload" : ["success"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1268,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["evar","evar X97 (sort (typ «interleave_context.403»)) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1268,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1268,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"coq-builtin.elpi\", line 193, column 0, character 7432:","File \"coq-builtin.elpi\", line 197, column 0, character 7585:"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1268,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"coq-builtin.elpi\", line 193, column 0, character 7432:","(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true)."]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X97"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := sort (typ «interleave_context.403»)"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1268,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1283"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1283,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1283,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1284"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 130,"kind" : ["Info"],"goal_id" : 1283,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 131,"kind" : ["Info"],"goal_id" : 1283,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 131,"kind" : ["Info"],"goal_id" : 1283,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 131,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1268","File \"coq-builtin.elpi\", line 197, column 0, character 7585:","(evar _ _ _) :- ."]} +{"step" : 131,"kind" : ["Info"],"goal_id" : 1283,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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»)]]"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1285"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1285,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1285,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1286"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1286,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1285,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1287"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1287,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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»)]]"]} +{"step" : 132,"kind" : ["Info"],"goal_id" : 1285,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 133,"kind" : ["Info"],"goal_id" : 1285,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["var","var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 133,"kind" : ["Info"],"goal_id" : 1285,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 133,"kind" : ["Info"],"goal_id" : 1285,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["var"]} +{"step" : 133,"kind" : ["Info"],"goal_id" : 1285,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 134,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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"]} +{"step" : 134,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 134,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 134,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 134,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 134,"kind" : ["Info"],"goal_id" : 1284,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1288"]} +{"step" : 134,"kind" : ["Info"],"goal_id" : 1288,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 134,"kind" : ["Info"],"goal_id" : 1288,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 135,"kind" : ["Info"],"goal_id" : 1288,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 135,"kind" : ["Info"],"goal_id" : 1288,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 135,"kind" : ["Info"],"goal_id" : 1288,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 135,"kind" : ["Info"],"goal_id" : 1288,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 135,"kind" : ["Info"],"goal_id" : 1288,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 136,"kind" : ["Info"],"goal_id" : 1281,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X71 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 136,"kind" : ["Info"],"goal_id" : 1281,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 136,"kind" : ["Info"],"goal_id" : 1281,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 136,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X71 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 136,"kind" : ["Info"],"goal_id" : 1281,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 137,"kind" : ["Info"],"goal_id" : 1282,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X98 = ok"]} +{"step" : 137,"kind" : ["Info"],"goal_id" : 1282,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 137,"kind" : ["Info"],"goal_id" : 1282,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 137,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X98 := ok"]} +{"step" : 137,"kind" : ["Info"],"goal_id" : 1282,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 138,"kind" : ["Info"],"goal_id" : 1277,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 138,"kind" : ["Info"],"goal_id" : 1277,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 138,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1273","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:","(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned)."]} +{"step" : 138,"kind" : ["Info"],"goal_id" : 1277,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 139,"kind" : ["Info"],"goal_id" : 1278,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","ok = ok ; ok = error X99 , std.fatal-error-w-data Definition illtyped X99"]} +{"step" : 139,"kind" : ["Info"],"goal_id" : 1278,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 139,"kind" : ["Info"],"goal_id" : 1278,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 139,"kind" : ["Info"],"goal_id" : 1278,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 139,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ok = ok"]} +{"step" : 139,"kind" : ["Info"],"goal_id" : 1278,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1289"]} +{"step" : 139,"kind" : ["Info"],"goal_id" : 1289,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["ok = ok"]} +{"step" : 139,"kind" : ["Info"],"goal_id" : 1289,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 140,"kind" : ["Info"],"goal_id" : 1289,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","ok = ok"]} +{"step" : 140,"kind" : ["Info"],"goal_id" : 1289,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 140,"kind" : ["Info"],"goal_id" : 1289,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 140,"kind" : ["Info"],"goal_id" : 1289,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 141,"kind" : ["Info"],"goal_id" : 1279,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 141,"kind" : ["Info"],"goal_id" : 1279,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 141,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1278","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 141,"kind" : ["Info"],"goal_id" : 1279,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 142,"kind" : ["Info"],"goal_id" : 1274,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 142,"kind" : ["Info"],"goal_id" : 1274,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 142,"kind" : ["Info"],"goal_id" : 1274,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1275,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1275,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1275,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1275,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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))"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1275,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1290"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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))"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1291"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1291,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1292"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1292,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 143,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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))"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])\n = arity X72"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1290,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1293"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1293,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity X72"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1293,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1294"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1294,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1293,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1295"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1295,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 144,"kind" : ["Info"],"goal_id" : 1293,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 145,"kind" : ["Info"],"goal_id" : 1293,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity X72"]} +{"step" : 145,"kind" : ["Info"],"goal_id" : 1293,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 145,"kind" : ["Info"],"goal_id" : 1293,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 145,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X72 := app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 145,"kind" : ["Info"],"goal_id" : 1293,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 146,"kind" : ["Info"],"goal_id" : 1294,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 146,"kind" : ["Info"],"goal_id" : 1294,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 146,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1290","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 146,"kind" : ["Info"],"goal_id" : 1294,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 147,"kind" : ["Info"],"goal_id" : 1295,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","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]"]} +{"step" : 147,"kind" : ["Info"],"goal_id" : 1295,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 147,"kind" : ["Info"],"goal_id" : 1295,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1296"]} +{"step" : 147,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if-verbose (coq.say HB: skipping section opening)"]} +{"step" : 147,"kind" : ["Info"],"goal_id" : 1295,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1297"]} +{"step" : 147,"kind" : ["Info"],"goal_id" : 1297,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 147,"kind" : ["Info"],"goal_id" : 1295,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if-verbose","if-verbose (coq.say HB: skipping section opening)"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 51, column 0, character 1529:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 52, column 0, character 1576:"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 51, column 0, character 1529:","(if-verbose A0) :- (get-option verbose tt), (!), A0."]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.say HB: skipping section opening"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1298"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1298,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option verbose tt"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1298,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1299"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1299,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1298,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1300"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1300,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.say HB: skipping section opening"]} +{"step" : 148,"kind" : ["Info"],"goal_id" : 1298,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 149,"kind" : ["Info"],"goal_id" : 1298,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option verbose tt"]} +{"step" : 149,"kind" : ["Info"],"goal_id" : 1298,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 149,"kind" : ["Info"],"goal_id" : 1298,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 149,"kind" : ["Info"],"goal_id" : 1298,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 150,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if-verbose","if-verbose (coq.say HB: skipping section opening)"]} +{"step" : 150,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 150,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 52, column 0, character 1576:"]} +{"step" : 150,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 52, column 0, character 1576:","(if-verbose _) :- ."]} +{"step" : 150,"kind" : ["Info"],"goal_id" : 1296,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 151,"kind" : ["Info"],"goal_id" : 1297,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 151,"kind" : ["Info"],"goal_id" : 1297,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 151,"kind" : ["Info"],"goal_id" : 1297,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 151,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X73 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 151,"kind" : ["Info"],"goal_id" : 1297,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 152,"kind" : ["Info"],"goal_id" : 1291,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 152,"kind" : ["Info"],"goal_id" : 1291,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 152,"kind" : ["Info"],"goal_id" : 1291,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1292,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1292,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1292,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1292,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1292,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1301"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1302"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1302,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1303"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1303,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 153,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert!","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"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 35, column 0, character 1155:"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 35, column 0, character 1155:","(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!)."]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := The type of the instance is not a factory"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1301,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1304"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1304,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1304,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1305"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1305,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 154,"kind" : ["Info"],"goal_id" : 1304,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 155,"kind" : ["Info"],"goal_id" : 1304,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","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)"]} +{"step" : 155,"kind" : ["Info"],"goal_id" : 1304,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 155,"kind" : ["Info"],"goal_id" : 1304,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 155,"kind" : ["Info"],"goal_id" : 1304,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 155,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78"]} +{"step" : 155,"kind" : ["Info"],"goal_id" : 1304,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1306"]} +{"step" : 155,"kind" : ["Info"],"goal_id" : 1306,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78"]} +{"step" : 155,"kind" : ["Info"],"goal_id" : 1306,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1306,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.safe-dest-app","coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1306,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1306,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 72, column 0, character 2783:","File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1306,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 72, column 0, character 2783:","(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3)."]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «IsSelfA'.axioms_»)"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (indt «nat»)]"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := global X77"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X78"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1306,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1307"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1307,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1307,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1308"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1308,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global X77) X100"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1307,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1309"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1309,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.append X100 [global (indt «nat»)] X78"]} +{"step" : 156,"kind" : ["Info"],"goal_id" : 1307,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 157,"kind" : ["Info"],"goal_id" : 1307,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 157,"kind" : ["Info"],"goal_id" : 1307,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 157,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1306","File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:","(coq.safe-dest-app A0 A0 []) :- ."]} +{"step" : 157,"kind" : ["Info"],"goal_id" : 1307,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 158,"kind" : ["Info"],"goal_id" : 1308,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.safe-dest-app","coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global X77) X100"]} +{"step" : 158,"kind" : ["Info"],"goal_id" : 1308,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 158,"kind" : ["Info"],"goal_id" : 1308,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:"]} +{"step" : 158,"kind" : ["Info"],"goal_id" : 1308,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:","(coq.safe-dest-app A0 A0 []) :- ."]} +{"step" : 158,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «IsSelfA'.axioms_»)"]} +{"step" : 158,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X77 := indt «IsSelfA'.axioms_»"]} +{"step" : 158,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X100 := []"]} +{"step" : 158,"kind" : ["Info"],"goal_id" : 1308,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 159,"kind" : ["Info"],"goal_id" : 1309,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.append","std.append [] [global (indt «nat»)] X78"]} +{"step" : 159,"kind" : ["Info"],"goal_id" : 1309,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 159,"kind" : ["Info"],"goal_id" : 1309,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 81, column 0, character 2754:"]} +{"step" : 159,"kind" : ["Info"],"goal_id" : 1309,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 81, column 0, character 2754:","(std.append [] A0 A0) :- ."]} +{"step" : 159,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [global (indt «nat»)]"]} +{"step" : 159,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X78 := [global (indt «nat»)]"]} +{"step" : 159,"kind" : ["Info"],"goal_id" : 1309,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 160,"kind" : ["Info"],"goal_id" : 1305,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 160,"kind" : ["Info"],"goal_id" : 1305,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 160,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1304","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 160,"kind" : ["Info"],"goal_id" : 1305,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 161,"kind" : ["Info"],"goal_id" : 1302,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 161,"kind" : ["Info"],"goal_id" : 1302,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 161,"kind" : ["Info"],"goal_id" : 1302,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1303,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1303,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1303,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1303,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := factory-alias->gref (indt «IsSelfA'.axioms_») X79"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1303,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1310"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-alias->gref (indt «IsSelfA'.axioms_») X79"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1311"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1311,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1312"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1312,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 162,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-alias->gref","factory-alias->gref (indt «IsSelfA'.axioms_») X79"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 74, column 0, character 2385:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 74, column 0, character 2385:","(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!)."]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X79"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1313"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev X79 (indt «IsSelfA'.axioms_») _"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1314"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1314,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 163,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev X79 (indt «IsSelfA'.axioms_») _"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indt «HasA.axioms_»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «HasA.phant_axioms»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- ."]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indc «HasA.Axioms_»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «HasA.phant_Build»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indt «HasB.axioms_»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «HasB.phant_axioms»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- ."]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indc «HasB.Axioms_»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «HasB.phant_Build»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indt «IsSelfA.axioms_»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «IsSelfA.phant_axioms»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- ."]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indc «IsSelfA.Axioms_»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «IsSelfA.phant_Build»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indt «IsSelfA'.axioms_»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «IsSelfA'.phant_axioms»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- ."]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indc «IsSelfA'.Axioms_»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «IsSelfA'.phant_Build»"]} +{"step" : 164,"kind" : ["Info"],"goal_id" : 1313,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-alias->gref","factory-alias->gref (indt «IsSelfA'.axioms_») X79"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!)."]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X79 := indt «IsSelfA'.axioms_»"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1310,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1315"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev (indt «IsSelfA'.axioms_») _ _"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1316"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1316,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 165,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev (indt «IsSelfA'.axioms_») _ _"]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «HasA.axioms_»"]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «HasB.axioms_»"]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «IsSelfA.axioms_»"]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 166,"kind" : ["Info"],"goal_id" : 1315,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 167,"kind" : ["Info"],"goal_id" : 1316,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 167,"kind" : ["Info"],"goal_id" : 1316,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 167,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1310","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «A.axioms_») (indt «A.axioms_»)) :- ."]} +{"step" : 167,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1310","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «B.axioms_») (indt «B.axioms_»)) :- ."]} +{"step" : 167,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1310","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «SelfA.axioms_») (indt «SelfA.axioms_»)) :- ."]} +{"step" : 167,"kind" : ["Info"],"goal_id" : 1316,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 168,"kind" : ["Info"],"goal_id" : 1311,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 168,"kind" : ["Info"],"goal_id" : 1311,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 168,"kind" : ["Info"],"goal_id" : 1311,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1312,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1312,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1312,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1312,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.assert! (factory-nparams (indt «IsSelfA'.axioms_») X80) \n Not a factory synthesized by HB"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1312,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1317"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.assert! (factory-nparams (indt «IsSelfA'.axioms_») X80) \n Not a factory synthesized by HB"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1318"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1318,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1319"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1319,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 169,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert!","std.assert! (factory-nparams (indt «IsSelfA'.axioms_») X80) \n Not a factory synthesized by HB"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 35, column 0, character 1155:"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 35, column 0, character 1155:","(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!)."]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := factory-nparams (indt «IsSelfA'.axioms_») X80"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := Not a factory synthesized by HB"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1317,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1320"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1320,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1320,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1321"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1321,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 170,"kind" : ["Info"],"goal_id" : 1320,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 171,"kind" : ["Info"],"goal_id" : 1320,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","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)"]} +{"step" : 171,"kind" : ["Info"],"goal_id" : 1320,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 171,"kind" : ["Info"],"goal_id" : 1320,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 171,"kind" : ["Info"],"goal_id" : 1320,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 171,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := factory-nparams (indt «IsSelfA'.axioms_») X80"]} +{"step" : 171,"kind" : ["Info"],"goal_id" : 1320,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1322"]} +{"step" : 171,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-nparams (indt «IsSelfA'.axioms_») X80"]} +{"step" : 171,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-nparams","factory-nparams (indt «IsSelfA'.axioms_») X80"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «HasA.axioms_») 1) :- ."]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «HasA.axioms_»"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «A.axioms_») 1) :- ."]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «A.axioms_»"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «HasB.axioms_») 1) :- ."]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «HasB.axioms_»"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «B.axioms_») 1) :- ."]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «B.axioms_»"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «IsSelfA.axioms_») 0) :- ."]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «IsSelfA.axioms_»"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «SelfA.axioms_») 0) :- ."]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «SelfA.axioms_»"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «IsSelfA'.axioms_») 0) :- ."]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X80 := 0"]} +{"step" : 172,"kind" : ["Info"],"goal_id" : 1322,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 173,"kind" : ["Info"],"goal_id" : 1321,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 173,"kind" : ["Info"],"goal_id" : 1321,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 173,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1320","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 173,"kind" : ["Info"],"goal_id" : 1321,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 174,"kind" : ["Info"],"goal_id" : 1318,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 174,"kind" : ["Info"],"goal_id" : 1318,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 174,"kind" : ["Info"],"goal_id" : 1318,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1319,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1319,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1319,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1319,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1319,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1323"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1324"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1324,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1325"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1325,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 175,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.hack-section-discharging","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"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 300, column 0, character 12925:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 301, column 0, character 12985:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 304, column 0, character 13219:"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 300, column 0, character 12925:","(instance.private.hack-section-discharging A0 A0) :- (current-mode no-builder), \n (!)."]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X81 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1326"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1326,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["current-mode no-builder"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1326,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1327"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1327,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 176,"kind" : ["Info"],"goal_id" : 1326,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 177,"kind" : ["Info"],"goal_id" : 1326,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["current-mode","current-mode no-builder"]} +{"step" : 177,"kind" : ["Info"],"goal_id" : 1326,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 177,"kind" : ["Info"],"goal_id" : 1326,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 177,"kind" : ["Info"],"goal_id" : 1326,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.hack-section-discharging","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"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 301, column 0, character 12985:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 304, column 0, character 13219:"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 301, column 0, character 12985:","(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))."]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X81"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1328"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["current-mode (builder-from _ X101 _ _)"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1329"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1329,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1330"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1330,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.assert-ok! (coq.typecheck X101 X102) TheFactory is illtyped (BUG)"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1331"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1331,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 178,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 179,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["current-mode","current-mode (builder-from _ X101 _ _)"]} +{"step" : 179,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 179,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 179,"kind" : ["Info"],"goal_id" : 1328,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 180,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.hack-section-discharging","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"]} +{"step" : 180,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 180,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 304, column 0, character 13219:"]} +{"step" : 180,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 304, column 0, character 13219:","(instance.private.hack-section-discharging A0 A0) :- ."]} +{"step" : 180,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 180,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X81 := app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 180,"kind" : ["Info"],"goal_id" : 1323,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 181,"kind" : ["Info"],"goal_id" : 1324,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 181,"kind" : ["Info"],"goal_id" : 1324,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 181,"kind" : ["Info"],"goal_id" : 1324,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1325,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1325,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1325,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1325,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1325,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1332"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1333"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1333,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1334"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1334,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 182,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.optimize-body","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"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 309, column 0, character 13433:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 314, column 0, character 13706:"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 309, column 0, character 13433:","(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)."]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := «IsSelfA'.phant_Build»"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X82"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1332,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1335"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev _ (const «IsSelfA'.phant_Build») _ ;\n coq.gref->id (const «IsSelfA'.phant_Build») X103 , rex_match phant_ X103"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1336"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1336,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1337"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1337,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.env.const «IsSelfA'.phant_Build» (some X104) _"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1338"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1338,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["hd-beta X104 \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1339"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1339,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["unwind X105 X106 X82"]} +{"step" : 183,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 184,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","phant-abbrev _ (const «IsSelfA'.phant_Build») _ ;\n coq.gref->id (const «IsSelfA'.phant_Build») X103 , rex_match phant_ X103"]} +{"step" : 184,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 184,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 184,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 184,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := phant-abbrev _ (const «IsSelfA'.phant_Build») _"]} +{"step" : 184,"kind" : ["Info"],"goal_id" : 1335,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1340"]} +{"step" : 184,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev _ (const «IsSelfA'.phant_Build») _"]} +{"step" : 184,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev _ (const «IsSelfA'.phant_Build») _"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify const «IsSelfA'.phant_Build» with const «HasA.phant_axioms»"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- ."]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify const «IsSelfA'.phant_Build» with const «HasA.phant_Build»"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify const «IsSelfA'.phant_Build» with const «HasB.phant_axioms»"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- ."]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify const «IsSelfA'.phant_Build» with const «HasB.phant_Build»"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify const «IsSelfA'.phant_Build» with const «IsSelfA.phant_axioms»"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- ."]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify const «IsSelfA'.phant_Build» with const «IsSelfA.phant_Build»"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify const «IsSelfA'.phant_Build» with const «IsSelfA'.phant_axioms»"]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- ."]} +{"step" : 185,"kind" : ["Info"],"goal_id" : 1340,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 186,"kind" : ["Info"],"goal_id" : 1336,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 186,"kind" : ["Info"],"goal_id" : 1336,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 186,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1335","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 186,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1332","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 314, column 0, character 13706:","(instance.private.optimize-body A0 A0) :- ."]} +{"step" : 186,"kind" : ["Info"],"goal_id" : 1336,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 187,"kind" : ["Info"],"goal_id" : 1337,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.env.const","coq.env.const «IsSelfA'.phant_Build» (some X104) _"]} +{"step" : 187,"kind" : ["Info"],"goal_id" : 1337,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 187,"kind" : ["Info"],"goal_id" : 1337,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.env.const"]} +{"step" : 187,"kind" : ["Info"],"goal_id" : 1337,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 187,"kind" : ["Info"],"goal_id" : 1337,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1341"]} +{"step" : 187,"kind" : ["Info"],"goal_id" : 1341,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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])"]} +{"step" : 188,"kind" : ["Info"],"goal_id" : 1341,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","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])"]} +{"step" : 188,"kind" : ["Info"],"goal_id" : 1341,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 188,"kind" : ["Info"],"goal_id" : 1341,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 188,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 188,"kind" : ["Info"],"goal_id" : 1341,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1338,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["hd-beta","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"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1338,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1338,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 93, column 0, character 3492:","File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1338,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 93, column 0, character 3492:","(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4)."]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0 \\\nfun `a` c0 c1 \\\n fun `b` (prod `_` c0 c2 \\ c0) c2 \\\n app [global (indc «IsSelfA'.Axioms_»), c0, c1, c2]"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := global (indt «nat»)"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X105"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X106"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1338,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1342"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1342,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1342,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1343"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1343,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 189,"kind" : ["Info"],"goal_id" : 1342,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 190,"kind" : ["Info"],"goal_id" : 1342,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 190,"kind" : ["Info"],"goal_id" : 1342,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 190,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1338","File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:","(hd-beta A0 A1 A0 A1) :- ."]} +{"step" : 190,"kind" : ["Info"],"goal_id" : 1342,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1343,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["hd-beta","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"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1343,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1343,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 93, column 0, character 3492:","File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1343,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 93, column 0, character 3492:","(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4)."]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0 \\\nfun `b` (prod `_` (global (indt «nat»)) c1 \\ global (indt «nat»)) c1 \\\n app [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), c0, c1]"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := global (indc «O»)"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := [fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X105"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X106"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1343,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1344"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1344,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1344,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1345"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1345,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 191,"kind" : ["Info"],"goal_id" : 1344,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 192,"kind" : ["Info"],"goal_id" : 1344,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 192,"kind" : ["Info"],"goal_id" : 1344,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 192,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1343","File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:","(hd-beta A0 A1 A0 A1) :- ."]} +{"step" : 192,"kind" : ["Info"],"goal_id" : 1344,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1345,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["hd-beta","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"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1345,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1345,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 93, column 0, character 3492:","File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1345,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 93, column 0, character 3492:","(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4)."]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0 \\\napp\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), c0]"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := fun `x` (global (indt «nat»)) c0 \\ c0"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := []"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X105"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X106"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1345,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1346"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1346,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1346,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1347"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1347,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 193,"kind" : ["Info"],"goal_id" : 1346,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 194,"kind" : ["Info"],"goal_id" : 1346,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 194,"kind" : ["Info"],"goal_id" : 1346,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 194,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1345","File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:","(hd-beta A0 A1 A0 A1) :- ."]} +{"step" : 194,"kind" : ["Info"],"goal_id" : 1346,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1347,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["hd-beta","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"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1347,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1347,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 92, column 0, character 3424:","File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1347,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 92, column 0, character 3424:","(hd-beta (app [A0 | A1]) A2 A3 A4) :- (!), (std.append A1 A2 A5), \n (hd-beta A0 A5 A3 A4)."]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indc «IsSelfA'.Axioms_»)"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := []"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X105"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X106"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1347,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1348"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1348,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1348,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1349"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1349,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.append\n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] [] X107"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1348,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1350"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1350,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["hd-beta (global (indc «IsSelfA'.Axioms_»)) X107 X105 X106"]} +{"step" : 195,"kind" : ["Info"],"goal_id" : 1348,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 196,"kind" : ["Info"],"goal_id" : 1348,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 196,"kind" : ["Info"],"goal_id" : 1348,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 196,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1347","File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:","(hd-beta A0 A1 A0 A1) :- ."]} +{"step" : 196,"kind" : ["Info"],"goal_id" : 1348,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 1349,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.append","std.append\n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] [] X107"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 1349,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 1349,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 80, column 0, character 2711:"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 1349,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 80, column 0, character 2711:","(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3)."]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «nat»)"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := []"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X107 := [global (indt «nat») | X108]"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 1349,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1351"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 1351,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.append [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0] [] \n X108"]} +{"step" : 197,"kind" : ["Info"],"goal_id" : 1351,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 1351,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.append","std.append [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0] [] \n X108"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 1351,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 1351,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 80, column 0, character 2711:"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 1351,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 80, column 0, character 2711:","(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3)."]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indc «O»)"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := []"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X108 := [global (indc «O») | X109]"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 1351,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1352"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 1352,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.append [fun `x` (global (indt «nat»)) c0 \\ c0] [] X109"]} +{"step" : 198,"kind" : ["Info"],"goal_id" : 1352,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 1352,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.append","std.append [fun `x` (global (indt «nat»)) c0 \\ c0] [] X109"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 1352,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 1352,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 80, column 0, character 2711:"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 1352,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 80, column 0, character 2711:","(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3)."]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := fun `x` (global (indt «nat»)) c0 \\ c0"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := []"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X109 := [fun `x` (global (indt «nat»)) c0 \\ c0 | X110]"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 1352,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1353"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 1353,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.append [] [] X110"]} +{"step" : 199,"kind" : ["Info"],"goal_id" : 1353,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 200,"kind" : ["Info"],"goal_id" : 1353,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.append","std.append [] [] X110"]} +{"step" : 200,"kind" : ["Info"],"goal_id" : 1353,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 200,"kind" : ["Info"],"goal_id" : 1353,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 81, column 0, character 2754:"]} +{"step" : 200,"kind" : ["Info"],"goal_id" : 1353,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 81, column 0, character 2754:","(std.append [] A0 A0) :- ."]} +{"step" : 200,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 200,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X110 := []"]} +{"step" : 200,"kind" : ["Info"],"goal_id" : 1353,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 1350,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["hd-beta","hd-beta (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106"]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 1350,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 1350,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:"]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 1350,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 94, column 0, character 3551:","(hd-beta A0 A1 A0 A1) :- ."]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indc «IsSelfA'.Axioms_»)"]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X105 := global (indc «IsSelfA'.Axioms_»)"]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X106 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 201,"kind" : ["Info"],"goal_id" : 1350,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 1339,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["unwind","unwind (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 1339,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 1339,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 22, column 0, character 758:"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 1339,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/elpi-reduction.elpi\", line 22, column 0, character 758:","(unwind A0 A1 A2) :- (if (var A0) (coq.mk-app-uvar A0 A1 A2) \n (coq.mk-app A0 A1 A2))."]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indc «IsSelfA'.Axioms_»)"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X82"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 1339,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1354"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)"]} +{"step" : 202,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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)"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := var (global (indc «IsSelfA'.Axioms_»))"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1355"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1355,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["var (global (indc «IsSelfA'.Axioms_»))"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1355,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1356"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1356,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1355,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1357"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1357,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.mk-app-uvar (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82"]} +{"step" : 203,"kind" : ["Info"],"goal_id" : 1355,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 204,"kind" : ["Info"],"goal_id" : 1355,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["var","var (global (indc «IsSelfA'.Axioms_»))"]} +{"step" : 204,"kind" : ["Info"],"goal_id" : 1355,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 204,"kind" : ["Info"],"goal_id" : 1355,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["var"]} +{"step" : 204,"kind" : ["Info"],"goal_id" : 1355,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 205,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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)"]} +{"step" : 205,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 205,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 205,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 205,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.mk-app (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82"]} +{"step" : 205,"kind" : ["Info"],"goal_id" : 1354,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1358"]} +{"step" : 205,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.mk-app (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82"]} +{"step" : 205,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.mk-app","coq.mk-app (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 77, column 0, character 2958:","File \"/build/source/./elpi/coq-lib.elpi\", line 81, column 0, character 3175:"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 77, column 0, character 2958:","(coq.mk-app A0 [] A0) :- (!)."]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indc «IsSelfA'.Axioms_»)"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["match\n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] with []"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 81, column 0, character 3175:","(coq.mk-app A0 A1 (app [A0 | A1])) :- ."]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indc «IsSelfA'.Axioms_»)"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X82 := app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 206,"kind" : ["Info"],"goal_id" : 1358,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 207,"kind" : ["Info"],"goal_id" : 1333,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 207,"kind" : ["Info"],"goal_id" : 1333,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 207,"kind" : ["Info"],"goal_id" : 1333,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1334,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1334,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1334,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1334,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _)"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1334,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1359"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _)"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1360"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1360,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1361"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1361,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 208,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _)"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := _ = _"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := , (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1359,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1362"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1362,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["_ = _"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1362,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1363"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1363,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1362,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1364"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1364,"runtime_id" : 8,"name" : "user:newgoal","payload" : [", (new_int X83) (std.any->string X83 X84) (X85 is HB_unnamed_factory_ ^ X84)"]} +{"step" : 209,"kind" : ["Info"],"goal_id" : 1362,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 210,"kind" : ["Info"],"goal_id" : 1362,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","_ = _"]} +{"step" : 210,"kind" : ["Info"],"goal_id" : 1362,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 210,"kind" : ["Info"],"goal_id" : 1362,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 210,"kind" : ["Info"],"goal_id" : 1362,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 211,"kind" : ["Info"],"goal_id" : 1363,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 211,"kind" : ["Info"],"goal_id" : 1363,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 211,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1359","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 211,"kind" : ["Info"],"goal_id" : 1363,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1364,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",",", (new_int X83) (std.any->string X83 X84) (X85 is HB_unnamed_factory_ ^ X84)"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1364,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1364,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1365"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1365,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["new_int X83"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1364,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1366"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1366,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.any->string X83 X84"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1364,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1367"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1367,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X85 is HB_unnamed_factory_ ^ X84"]} +{"step" : 212,"kind" : ["Info"],"goal_id" : 1364,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 213,"kind" : ["Info"],"goal_id" : 1365,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["new_int","new_int X83"]} +{"step" : 213,"kind" : ["Info"],"goal_id" : 1365,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 213,"kind" : ["Info"],"goal_id" : 1365,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["new_int"]} +{"step" : 213,"kind" : ["Info"],"goal_id" : 1365,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 213,"kind" : ["Info"],"goal_id" : 1365,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1368"]} +{"step" : 213,"kind" : ["Info"],"goal_id" : 1368,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X83 = 27"]} +{"step" : 214,"kind" : ["Info"],"goal_id" : 1368,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X83 = 27"]} +{"step" : 214,"kind" : ["Info"],"goal_id" : 1368,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 214,"kind" : ["Info"],"goal_id" : 1368,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 214,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X83 := 27"]} +{"step" : 214,"kind" : ["Info"],"goal_id" : 1368,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 1366,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.any->string","std.any->string 27 X84"]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 1366,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 1366,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 275, column 0, character 9167:"]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 1366,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 275, column 0, character 9167:","(std.any->string A0 A1) :- (term_to_string A0 A1)."]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := 27"]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X84"]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 1366,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1369"]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 1369,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["term_to_string 27 X84"]} +{"step" : 215,"kind" : ["Info"],"goal_id" : 1369,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 216,"kind" : ["Info"],"goal_id" : 1369,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["term_to_string","term_to_string 27 X84"]} +{"step" : 216,"kind" : ["Info"],"goal_id" : 1369,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 216,"kind" : ["Info"],"goal_id" : 1369,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["term_to_string"]} +{"step" : 216,"kind" : ["Info"],"goal_id" : 1369,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 216,"kind" : ["Info"],"goal_id" : 1369,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1370"]} +{"step" : 216,"kind" : ["Info"],"goal_id" : 1370,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X84 = 27"]} +{"step" : 217,"kind" : ["Info"],"goal_id" : 1370,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X84 = 27"]} +{"step" : 217,"kind" : ["Info"],"goal_id" : 1370,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} + +{"step" : 218,"kind" : ["Info"],"goal_id" : 1367,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["is","X85 is HB_unnamed_factory_ ^ 27"]} +{"step" : 218,"kind" : ["Info"],"goal_id" : 1367,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 218,"kind" : ["Info"],"goal_id" : 1367,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 77, column 0, character 1165:"]} +{"step" : 218,"kind" : ["Info"],"goal_id" : 1367,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 77, column 0, character 1165:","(A0 is A1) :- (calc A1 A0)."]} +{"step" : 218,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X85"]} +{"step" : 218,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := HB_unnamed_factory_ ^ 27"]} +{"step" : 218,"kind" : ["Info"],"goal_id" : 1367,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1371"]} +{"step" : 218,"kind" : ["Info"],"goal_id" : 1371,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["calc (HB_unnamed_factory_ ^ 27) X85"]} +{"step" : 218,"kind" : ["Info"],"goal_id" : 1371,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 219,"kind" : ["Info"],"goal_id" : 1371,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["calc","calc (HB_unnamed_factory_ ^ 27) X85"]} +{"step" : 219,"kind" : ["Info"],"goal_id" : 1371,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 219,"kind" : ["Info"],"goal_id" : 1371,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["calc"]} +{"step" : 219,"kind" : ["Info"],"goal_id" : 1371,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 219,"kind" : ["Info"],"goal_id" : 1371,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1372"]} +{"step" : 219,"kind" : ["Info"],"goal_id" : 1372,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X85 = HB_unnamed_factory_27"]} +{"step" : 220,"kind" : ["Info"],"goal_id" : 1372,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X85 = HB_unnamed_factory_27"]} +{"step" : 220,"kind" : ["Info"],"goal_id" : 1372,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 220,"kind" : ["Info"],"goal_id" : 1372,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 220,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X85 := HB_unnamed_factory_27"]} +{"step" : 220,"kind" : ["Info"],"goal_id" : 1372,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 221,"kind" : ["Info"],"goal_id" : 1360,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 221,"kind" : ["Info"],"goal_id" : 1360,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 221,"kind" : ["Info"],"goal_id" : 1360,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1361,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1361,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1361,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1361,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1361,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1373"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1374"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1374,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1375"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1375,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 222,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.coq.env.add-const-noimplicits-failondup","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"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 59, column 0, character 2355:"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 59, column 0, character 2355:","(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 [[]]])."]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := HB_unnamed_factory_27"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := ff"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X86"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 1373,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1376"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 1376,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) [[]]]"]} +{"step" : 223,"kind" : ["Info"],"goal_id" : 1376,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1376,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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) [[]]]"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1376,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1376,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1376,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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) [[]]]"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1376,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1377"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1378"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1378,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1379"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1379,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) [[]]]"]} +{"step" : 224,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]))"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1380"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]))"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1381"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1381,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1382"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1382,"runtime_id" : 8,"name" : "user:newgoal","payload" : [",\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)"]} +{"step" : 225,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["not","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]))"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 52, column 0, character 609:","File \"elpi-builtin.elpi\", line 54, column 0, character 631:"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 52, column 0, character 609:","(not A0) :- A0, (!), fail."]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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])"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1380,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1383"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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])"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1384"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1384,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1385"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1385,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["fail"]} +{"step" : 226,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 227,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","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])"]} +{"step" : 227,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 227,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 227,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 227,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 227,"kind" : ["Info"],"goal_id" : 1383,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1386"]} +{"step" : 227,"kind" : ["Info"],"goal_id" : 1386,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["ground_term (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 227,"kind" : ["Info"],"goal_id" : 1386,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 228,"kind" : ["Info"],"goal_id" : 1386,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["ground_term","ground_term (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 228,"kind" : ["Info"],"goal_id" : 1386,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 228,"kind" : ["Info"],"goal_id" : 1386,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["ground_term"]} +{"step" : 228,"kind" : ["Info"],"goal_id" : 1386,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 229,"kind" : ["Info"],"goal_id" : 1384,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 229,"kind" : ["Info"],"goal_id" : 1384,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 229,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1383","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 229,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1380","File \"elpi-builtin.elpi\", line 54, column 0, character 631:","(not _) :- ."]} +{"step" : 229,"kind" : ["Info"],"goal_id" : 1384,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 230,"kind" : ["Info"],"goal_id" : 1385,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["fail","fail"]} +{"step" : 230,"kind" : ["Info"],"goal_id" : 1385,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 230,"kind" : ["Info"],"goal_id" : 1385,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 230,"kind" : ["Info"],"goal_id" : 1385,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 231,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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"]} +{"step" : 231,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 231,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 231,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 231,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 231,"kind" : ["Info"],"goal_id" : 1377,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1387"]} +{"step" : 231,"kind" : ["Info"],"goal_id" : 1387,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 231,"kind" : ["Info"],"goal_id" : 1387,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 232,"kind" : ["Info"],"goal_id" : 1387,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 232,"kind" : ["Info"],"goal_id" : 1387,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 232,"kind" : ["Info"],"goal_id" : 1387,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 232,"kind" : ["Info"],"goal_id" : 1387,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 232,"kind" : ["Info"],"goal_id" : 1387,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 233,"kind" : ["Info"],"goal_id" : 1378,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 233,"kind" : ["Info"],"goal_id" : 1378,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 233,"kind" : ["Info"],"goal_id" : 1378,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1379,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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) [[]]]"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1379,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1379,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1379,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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) [[]]]"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1379,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1388"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1389"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1389,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1390"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1390,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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) [[]]]"]} +{"step" : 234,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 235,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.env.add-const","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"]} +{"step" : 235,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 235,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.env.add-const"]} +{"step" : 235,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 235,"kind" : ["Info"],"goal_id" : 1388,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1391"]} +{"step" : 235,"kind" : ["Info"],"goal_id" : 1391,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X86 = «HB_unnamed_factory_27»"]} +{"step" : 236,"kind" : ["Info"],"goal_id" : 1391,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X86 = «HB_unnamed_factory_27»"]} +{"step" : 236,"kind" : ["Info"],"goal_id" : 1391,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 236,"kind" : ["Info"],"goal_id" : 1391,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 236,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X86 := «HB_unnamed_factory_27»"]} +{"step" : 236,"kind" : ["Info"],"goal_id" : 1391,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 237,"kind" : ["Info"],"goal_id" : 1389,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 237,"kind" : ["Info"],"goal_id" : 1389,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 237,"kind" : ["Info"],"goal_id" : 1389,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1390,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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») [[]]]"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1390,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1390,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1390,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := log.coq.env.add-location (const «HB_unnamed_factory_27»)"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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») [[]]]"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1390,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1392"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.coq.env.add-location (const «HB_unnamed_factory_27»)"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1393"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1393,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1394"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1394,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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») [[]]]"]} +{"step" : 238,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 239,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.coq.env.add-location","log.coq.env.add-location (const «HB_unnamed_factory_27»)"]} +{"step" : 239,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 239,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 21, column 0, character 831:"]} +{"step" : 239,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 21, column 0, character 831:","(log.coq.env.add-location A0) :- (if (get-option elpi.loc A1) \n (acc-clause library (decl-location A0 A1)) \n true)."]} +{"step" : 239,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := const «HB_unnamed_factory_27»"]} +{"step" : 239,"kind" : ["Info"],"goal_id" : 1392,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1395"]} +{"step" : 239,"kind" : ["Info"],"goal_id" : 1395,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (get-option elpi.loc X114) \n (acc-clause library (decl-location (const «HB_unnamed_factory_27») X114)) \n true"]} +{"step" : 239,"kind" : ["Info"],"goal_id" : 1395,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1395,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (get-option elpi.loc X114) \n (acc-clause library (decl-location (const «HB_unnamed_factory_27») X114)) \n true"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1395,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1395,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1395,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := get-option elpi.loc X114"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := acc-clause library \n (decl-location (const «HB_unnamed_factory_27») X114)"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1395,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1396"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option elpi.loc X114"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1397"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1397,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1398"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1398,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["acc-clause library (decl-location (const «HB_unnamed_factory_27») X114)"]} +{"step" : 240,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 241,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option elpi.loc X114"]} +{"step" : 241,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 241,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:74)\", line 1, column 0, character 0:"]} +{"step" : 241,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:74)\", line 1, column 0, character 0:","(get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:) :- ."]} +{"step" : 241,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X114 := File \"(stdin)\", line 1, column 2, character 3:"]} +{"step" : 241,"kind" : ["Info"],"goal_id" : 1396,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 242,"kind" : ["Info"],"goal_id" : 1397,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 242,"kind" : ["Info"],"goal_id" : 1397,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 242,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1395","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 242,"kind" : ["Info"],"goal_id" : 1397,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 1398,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["acc-clause","acc-clause library \n (decl-location (const «HB_unnamed_factory_27») \n File \"(stdin)\", line 1, column 2, character 3:)"]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 1398,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 1398,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 75, column 0, character 2237:"]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 1398,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 75, column 0, character 2237:","(acc-clause A0 A1) :- (coq.elpi.accumulate A0 hb.db (clause _ _ A1))."]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := library"]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := decl-location (const «HB_unnamed_factory_27») \n File \"(stdin)\", line 1, column 2, character 3:"]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 1398,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1399"]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 1399,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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:))"]} +{"step" : 243,"kind" : ["Info"],"goal_id" : 1399,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 244,"kind" : ["Info"],"goal_id" : 1399,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.elpi.accumulate","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:))"]} +{"step" : 244,"kind" : ["Info"],"goal_id" : 1399,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 244,"kind" : ["Info"],"goal_id" : 1399,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.elpi.accumulate"]} +{"step" : 244,"kind" : ["Info"],"goal_id" : 1399,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 245,"kind" : ["Info"],"goal_id" : 1393,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 245,"kind" : ["Info"],"goal_id" : 1393,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 245,"kind" : ["Info"],"goal_id" : 1393,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1394,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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») [[]]]"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1394,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1394,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1394,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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»)]))"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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») [[]]]"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1394,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1400"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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»)]))"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1401"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1401,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1402"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1402,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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») [[]]]"]} +{"step" : 246,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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»)]))"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X113 = none"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1403"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1403,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1403,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1404"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1404,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1403,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1405"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1405,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X113 = none"]} +{"step" : 247,"kind" : ["Info"],"goal_id" : 1403,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 248,"kind" : ["Info"],"goal_id" : 1403,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["var","var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 248,"kind" : ["Info"],"goal_id" : 1403,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 248,"kind" : ["Info"],"goal_id" : 1403,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["var"]} +{"step" : 248,"kind" : ["Info"],"goal_id" : 1403,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 249,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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»)]))"]} +{"step" : 249,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 249,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 249,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 249,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 249,"kind" : ["Info"],"goal_id" : 1400,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1406"]} +{"step" : 249,"kind" : ["Info"],"goal_id" : 1406,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X113 = some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 249,"kind" : ["Info"],"goal_id" : 1406,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 250,"kind" : ["Info"],"goal_id" : 1406,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X113 = some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 250,"kind" : ["Info"],"goal_id" : 1406,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 250,"kind" : ["Info"],"goal_id" : 1406,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 250,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X113 := some\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])"]} +{"step" : 250,"kind" : ["Info"],"goal_id" : 1406,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 251,"kind" : ["Info"],"goal_id" : 1401,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 251,"kind" : ["Info"],"goal_id" : 1401,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 251,"kind" : ["Info"],"goal_id" : 1401,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1402,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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») [[]]]"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1402,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1402,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1402,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]))"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1402,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1407"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]))"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1408"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1408,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1409"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1409,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]"]} +{"step" : 252,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.private.log-vernac","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]))"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 291, column 0, character 11441:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 294, column 0, character 11623:"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 291, column 0, character 11441:","(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)."]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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])"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1410"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.private.logger X115 X116"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1411"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1411,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1412"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1412,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (X116 = tt) (X117 = []) (X117 = [get-option coq:pp all])"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1413"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1413,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1414"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1414,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.private.logger-extend X115 X118"]} +{"step" : 253,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 254,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.private.logger","log.private.logger X115 X116"]} +{"step" : 254,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 254,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 254,"kind" : ["Info"],"goal_id" : 1410,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 255,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.private.log-vernac","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]))"]} +{"step" : 255,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 255,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 294, column 0, character 11623:"]} +{"step" : 255,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 294, column 0, character 11623:","(log.private.log-vernac _) :- ."]} +{"step" : 255,"kind" : ["Info"],"goal_id" : 1407,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 256,"kind" : ["Info"],"goal_id" : 1408,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 256,"kind" : ["Info"],"goal_id" : 1408,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 256,"kind" : ["Info"],"goal_id" : 1408,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1409,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do!\n [get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1409,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1409,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1409,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1409,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1415"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1415,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1415,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1416"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1416,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1415,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1417"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1417,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! []"]} +{"step" : 257,"kind" : ["Info"],"goal_id" : 1415,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 258,"kind" : ["Info"],"goal_id" : 1415,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"]} +{"step" : 258,"kind" : ["Info"],"goal_id" : 1415,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 258,"kind" : ["Info"],"goal_id" : 1415,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1418"]} +{"step" : 258,"kind" : ["Info"],"goal_id" : 1418,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"]} +{"step" : 258,"kind" : ["Info"],"goal_id" : 1418,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 1418,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.coq.arguments.set-implicit","log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 1418,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 1418,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 14, column 0, character 592:"]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 1418,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 14, column 0, character 592:","(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))])."]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := const «HB_unnamed_factory_27»"]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [[]]"]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 1418,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1419"]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 1419,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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 [[]]))]"]} +{"step" : 259,"kind" : ["Info"],"goal_id" : 1419,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1419,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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 [[]]))]"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1419,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1419,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1419,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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 [[]]))]"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1419,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1420"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1420,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1420,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1421"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1421,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1420,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1422"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1422,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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 [[]]))]"]} +{"step" : 260,"kind" : ["Info"],"goal_id" : 1420,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 261,"kind" : ["Info"],"goal_id" : 1420,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.arguments.set-implicit","coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]"]} +{"step" : 261,"kind" : ["Info"],"goal_id" : 1420,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 261,"kind" : ["Info"],"goal_id" : 1420,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.arguments.set-implicit"]} +{"step" : 261,"kind" : ["Info"],"goal_id" : 1420,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 262,"kind" : ["Info"],"goal_id" : 1421,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 262,"kind" : ["Info"],"goal_id" : 1421,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 262,"kind" : ["Info"],"goal_id" : 1421,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1422,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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 [[]]))]"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1422,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1422,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1422,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := if (get-option coq:locality local) (X119 = tt) (X119 = ff)"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [(coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit X119 X120 [[]]))]"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1422,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1423"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (get-option coq:locality local) (X119 = tt) (X119 = ff)"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1424"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1424,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1425"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1425,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [(coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit X119 X120 [[]]))]"]} +{"step" : 263,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (get-option coq:locality local) (X119 = tt) (X119 = ff)"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := get-option coq:locality local"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X119 = tt"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1423,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1426"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option coq:locality local"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1427"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1427,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1428"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1428,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X119 = tt"]} +{"step" : 264,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 265,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option coq:locality local"]} +{"step" : 265,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 265,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:258)\", line 1, column 0, character 0:"]} +{"step" : 265,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:258)\", line 1, column 0, character 0:","(get-option coq:locality local) :- ."]} +{"step" : 265,"kind" : ["Info"],"goal_id" : 1426,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 266,"kind" : ["Info"],"goal_id" : 1427,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 266,"kind" : ["Info"],"goal_id" : 1427,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 266,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1423","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 266,"kind" : ["Info"],"goal_id" : 1427,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 267,"kind" : ["Info"],"goal_id" : 1428,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X119 = tt"]} +{"step" : 267,"kind" : ["Info"],"goal_id" : 1428,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 267,"kind" : ["Info"],"goal_id" : 1428,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 267,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X119 := tt"]} +{"step" : 267,"kind" : ["Info"],"goal_id" : 1428,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 268,"kind" : ["Info"],"goal_id" : 1424,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 268,"kind" : ["Info"],"goal_id" : 1424,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 268,"kind" : ["Info"],"goal_id" : 1424,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1425,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do!\n [(coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]]))]"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1425,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1425,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1425,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]])"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1425,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1429"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]])"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1430"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1430,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1431"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1431,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! []"]} +{"step" : 269,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 270,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]])"]} +{"step" : 270,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 270,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1432"]} +{"step" : 270,"kind" : ["Info"],"goal_id" : 1432,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.gref->id (const «HB_unnamed_factory_27») X120"]} +{"step" : 270,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1433"]} +{"step" : 270,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]])"]} +{"step" : 270,"kind" : ["Info"],"goal_id" : 1429,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 271,"kind" : ["Info"],"goal_id" : 1432,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.gref->id","coq.gref->id (const «HB_unnamed_factory_27») X120"]} +{"step" : 271,"kind" : ["Info"],"goal_id" : 1432,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 271,"kind" : ["Info"],"goal_id" : 1432,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.gref->id"]} +{"step" : 271,"kind" : ["Info"],"goal_id" : 1432,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 271,"kind" : ["Info"],"goal_id" : 1432,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1434"]} +{"step" : 271,"kind" : ["Info"],"goal_id" : 1434,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X120 = HB_unnamed_factory_27"]} +{"step" : 272,"kind" : ["Info"],"goal_id" : 1434,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X120 = HB_unnamed_factory_27"]} +{"step" : 272,"kind" : ["Info"],"goal_id" : 1434,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 272,"kind" : ["Info"],"goal_id" : 1434,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 272,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X120 := HB_unnamed_factory_27"]} +{"step" : 272,"kind" : ["Info"],"goal_id" : 1434,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.private.log-vernac","log.private.log-vernac\n (log.private.coq.vernac.implicit tt HB_unnamed_factory_27 [[]])"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 291, column 0, character 11441:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 294, column 0, character 11623:"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 291, column 0, character 11441:","(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)."]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := log.private.coq.vernac.implicit tt HB_unnamed_factory_27 [[]]"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1435"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.private.logger X121 X122"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1436"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1436,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1437"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1437,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (X122 = tt) (X123 = []) (X123 = [get-option coq:pp all])"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1438"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1438,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X123 =>\n log.private.coq.vernac->pp\n [log.private.coq.vernac.implicit tt HB_unnamed_factory_27 [[]]] X124"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1439"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1439,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["log.private.logger-extend X121 X124"]} +{"step" : 273,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 274,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.private.logger","log.private.logger X121 X122"]} +{"step" : 274,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 274,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 274,"kind" : ["Info"],"goal_id" : 1435,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 275,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["log.private.log-vernac","log.private.log-vernac\n (log.private.coq.vernac.implicit tt HB_unnamed_factory_27 [[]])"]} +{"step" : 275,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 275,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 294, column 0, character 11623:"]} +{"step" : 275,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi\", line 294, column 0, character 11623:","(log.private.log-vernac _) :- ."]} +{"step" : 275,"kind" : ["Info"],"goal_id" : 1433,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 276,"kind" : ["Info"],"goal_id" : 1430,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 276,"kind" : ["Info"],"goal_id" : 1430,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 276,"kind" : ["Info"],"goal_id" : 1430,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 277,"kind" : ["Info"],"goal_id" : 1431,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do! []"]} +{"step" : 277,"kind" : ["Info"],"goal_id" : 1431,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 277,"kind" : ["Info"],"goal_id" : 1431,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 255, column 0, character 8595:"]} +{"step" : 277,"kind" : ["Info"],"goal_id" : 1431,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 255, column 0, character 8595:","(std.do! []) :- ."]} +{"step" : 277,"kind" : ["Info"],"goal_id" : 1431,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 278,"kind" : ["Info"],"goal_id" : 1416,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 278,"kind" : ["Info"],"goal_id" : 1416,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 278,"kind" : ["Info"],"goal_id" : 1416,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 279,"kind" : ["Info"],"goal_id" : 1417,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do! []"]} +{"step" : 279,"kind" : ["Info"],"goal_id" : 1417,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 279,"kind" : ["Info"],"goal_id" : 1417,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 255, column 0, character 8595:"]} +{"step" : 279,"kind" : ["Info"],"goal_id" : 1417,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 255, column 0, character 8595:","(std.do! []) :- ."]} +{"step" : 279,"kind" : ["Info"],"goal_id" : 1417,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 280,"kind" : ["Info"],"goal_id" : 1374,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 280,"kind" : ["Info"],"goal_id" : 1374,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 280,"kind" : ["Info"],"goal_id" : 1374,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1375,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1375,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1375,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1375,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X87 = global (const «HB_unnamed_factory_27»)"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1375,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1440"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1440,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X87 = global (const «HB_unnamed_factory_27»)"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1440,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1441"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1441,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1440,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1442"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1442,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 281,"kind" : ["Info"],"goal_id" : 1440,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 282,"kind" : ["Info"],"goal_id" : 1440,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X87 = global (const «HB_unnamed_factory_27»)"]} +{"step" : 282,"kind" : ["Info"],"goal_id" : 1440,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 282,"kind" : ["Info"],"goal_id" : 1440,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 282,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X87 := global (const «HB_unnamed_factory_27»)"]} +{"step" : 282,"kind" : ["Info"],"goal_id" : 1440,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 283,"kind" : ["Info"],"goal_id" : 1441,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 283,"kind" : ["Info"],"goal_id" : 1441,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 283,"kind" : ["Info"],"goal_id" : 1441,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1442,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1442,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1442,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1442,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.drop 0 [global (indt «nat»)] [X88 | _]"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1442,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1443"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.drop 0 [global (indt «nat»)] [X88 | _]"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1444"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1444,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1445"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1445,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 284,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.drop","std.drop 0 [global (indt «nat»)] [X88 | _]"]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 99, column 0, character 3183:","File \"builtin_stdlib.elpi\", line 100, column 0, character 3200:","File \"builtin_stdlib.elpi\", line 101, column 0, character 3249:"]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 99, column 0, character 3183:","(std.drop 0 A0 A0) :- (!)."]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [global (indt «nat»)]"]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X88 := global (indt «nat»)"]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 1443,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1446"]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 1446,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 285,"kind" : ["Info"],"goal_id" : 1446,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 286,"kind" : ["Info"],"goal_id" : 1446,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 286,"kind" : ["Info"],"goal_id" : 1446,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 286,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1443","File \"builtin_stdlib.elpi\", line 100, column 0, character 3200:","(std.drop A0 [_ | A1] A2) :- (!), (A3 is A0 - 1), (std.drop A3 A1 A2)."]} +{"step" : 286,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1443","File \"builtin_stdlib.elpi\", line 101, column 0, character 3249:","(std.drop _ _ _) :- (std.fatal-error drop run out of list items)."]} +{"step" : 286,"kind" : ["Info"],"goal_id" : 1446,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 287,"kind" : ["Info"],"goal_id" : 1444,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 287,"kind" : ["Info"],"goal_id" : 1444,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 287,"kind" : ["Info"],"goal_id" : 1444,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1445,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1445,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1445,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1445,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := instance.private.check-non-forgetful-inheritance\n (global (indt «nat»)) (indt «IsSelfA'.axioms_»)"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1445,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1447"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["instance.private.check-non-forgetful-inheritance (global (indt «nat»)) \n (indt «IsSelfA'.axioms_»)"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1448"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1448,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1449"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1449,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 288,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.check-non-forgetful-inheritance","instance.private.check-non-forgetful-inheritance (global (indt «nat»)) \n (indt «IsSelfA'.axioms_»)"]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 341, column 0, character 14872:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 343, column 0, character 14959:"]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 341, column 0, character 14872:","(instance.private.check-non-forgetful-inheritance _ _) :- (get-option\n non_forgetful_inheritance \n tt), (!)."]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1450"]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1450,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option non_forgetful_inheritance tt"]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1450,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1451"]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1451,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 289,"kind" : ["Info"],"goal_id" : 1450,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 290,"kind" : ["Info"],"goal_id" : 1450,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option non_forgetful_inheritance tt"]} +{"step" : 290,"kind" : ["Info"],"goal_id" : 1450,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 290,"kind" : ["Info"],"goal_id" : 1450,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 290,"kind" : ["Info"],"goal_id" : 1450,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.check-non-forgetful-inheritance","instance.private.check-non-forgetful-inheritance (global (indt «nat»)) \n (indt «IsSelfA'.axioms_»)"]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 343, column 0, character 14959:"]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 343, column 0, character 14959:","(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])."]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «nat»)"]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := indt «IsSelfA'.axioms_»"]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 1447,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1452"]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 1452,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 291,"kind" : ["Info"],"goal_id" : 1452,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1452,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1452,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1452,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1452,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1452,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1453"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1454"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1454,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1455"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1455,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! []"]} +{"step" : 292,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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.)"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1456"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1457"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1457,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1458"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1458,"runtime_id" : 8,"name" : "user:newgoal","payload" : [", (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.)"]} +{"step" : 293,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 294,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126"]} +{"step" : 294,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 294,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1459"]} +{"step" : 294,"kind" : ["Info"],"goal_id" : 1459,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _"]} +{"step" : 294,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1460"]} +{"step" : 294,"kind" : ["Info"],"goal_id" : 1460,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["structure-key X125 _ X126"]} +{"step" : 294,"kind" : ["Info"],"goal_id" : 1456,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 295,"kind" : ["Info"],"goal_id" : 1459,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.safe-dest-app","coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _"]} +{"step" : 295,"kind" : ["Info"],"goal_id" : 1459,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 295,"kind" : ["Info"],"goal_id" : 1459,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:"]} +{"step" : 295,"kind" : ["Info"],"goal_id" : 1459,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:","(coq.safe-dest-app A0 A0 []) :- ."]} +{"step" : 295,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «nat»)"]} +{"step" : 295,"kind" : ["Info"],"goal_id" : 1459,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify global (const X125) with global (indt «nat»)"]} +{"step" : 295,"kind" : ["Info"],"goal_id" : 1459,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 296,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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"]} +{"step" : 296,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 296,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 296,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 296,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 296,"kind" : ["Info"],"goal_id" : 1453,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1461"]} +{"step" : 296,"kind" : ["Info"],"goal_id" : 1461,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 296,"kind" : ["Info"],"goal_id" : 1461,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 297,"kind" : ["Info"],"goal_id" : 1461,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 297,"kind" : ["Info"],"goal_id" : 1461,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 297,"kind" : ["Info"],"goal_id" : 1461,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 297,"kind" : ["Info"],"goal_id" : 1461,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 297,"kind" : ["Info"],"goal_id" : 1461,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 298,"kind" : ["Info"],"goal_id" : 1454,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 298,"kind" : ["Info"],"goal_id" : 1454,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 298,"kind" : ["Info"],"goal_id" : 1454,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 299,"kind" : ["Info"],"goal_id" : 1455,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do! []"]} +{"step" : 299,"kind" : ["Info"],"goal_id" : 1455,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 299,"kind" : ["Info"],"goal_id" : 1455,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 255, column 0, character 8595:"]} +{"step" : 299,"kind" : ["Info"],"goal_id" : 1455,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 255, column 0, character 8595:","(std.do! []) :- ."]} +{"step" : 299,"kind" : ["Info"],"goal_id" : 1455,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 300,"kind" : ["Info"],"goal_id" : 1448,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 300,"kind" : ["Info"],"goal_id" : 1448,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 300,"kind" : ["Info"],"goal_id" : 1448,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1449,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1449,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1449,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1449,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) \n X89 X90"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1449,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1462"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1463"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1463,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1464"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1464,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 301,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.declare-instance","instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 188, column 0, character 8025:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 196, column 0, character 8410:"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 188, column 0, character 8025:","(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)."]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := global (indt «nat»)"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := global (const «HB_unnamed_factory_27»)"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X89"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X90"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1465"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["current-mode (builder-from (global (indt «nat»)) X130 X131 _)"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1466"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1466,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1467"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1467,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1468"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1468,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1469"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1469,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 302,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 303,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["current-mode","current-mode (builder-from (global (indt «nat»)) X130 X131 _)"]} +{"step" : 303,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 303,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 303,"kind" : ["Info"],"goal_id" : 1465,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.declare-instance","instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 196, column 0, character 8410:"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 196, column 0, character 8410:","(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = []))."]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := global (indt «nat»)"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := global (const «HB_unnamed_factory_27»)"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X89"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X90"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1462,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1470"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1470,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["instance.private.declare-canonical-instances-from-factory\n (indt «IsSelfA'.axioms_») (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) X90"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1470,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1471"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1471,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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 = [])"]} +{"step" : 304,"kind" : ["Info"],"goal_id" : 1470,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 1470,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["instance.private.declare-canonical-instances-from-factory","instance.private.declare-canonical-instances-from-factory\n (indt «IsSelfA'.axioms_») (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) X90"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 1470,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 1470,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 282, column 0, character 12180:"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 1470,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi\", line 282, column 0, character 12180:","(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3])."]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := global (indt «nat»)"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := global (const «HB_unnamed_factory_27»)"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X90"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 1470,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1472"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 1472,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 305,"kind" : ["Info"],"goal_id" : 1472,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1472,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1472,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1472,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1472,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)]]"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [std.append X135 X137 X90]"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1472,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1473"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)]]"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1474"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1474,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1475"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1475,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! [std.append X135 X137 X90]"]} +{"step" : 306,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["synthesis.under-mixin-src-from-factory.do!","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)]]"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi\", line 100, column 0, character 4390:"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi\", line 100, column 0, character 4390:","(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2])."]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «nat»)"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := global (const «HB_unnamed_factory_27»)"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)]]"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 1473,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1476"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 1476,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)]]]"]} +{"step" : 307,"kind" : ["Info"],"goal_id" : 1476,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1476,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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)]]]"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1476,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1476,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1476,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := synthesis.private.factory-instance->new-mixins [] \n (global (const «HB_unnamed_factory_27»)) X138"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)]]]"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1476,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1477"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["synthesis.private.factory-instance->new-mixins [] \n (global (const «HB_unnamed_factory_27»)) X138"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1478"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1478,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1479"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1479,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)]]]"]} +{"step" : 308,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["synthesis.private.factory-instance->new-mixins","synthesis.private.factory-instance->new-mixins [] \n (global (const «HB_unnamed_factory_27»)) X138"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi\", line 289, column 0, character 12694:"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi\", line 289, column 0, character 12694:","(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2])."]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := global (const «HB_unnamed_factory_27»)"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X138"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 1477,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1480"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 1480,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 309,"kind" : ["Info"],"goal_id" : 1480,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1480,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1480,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1480,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1480,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.assert-ok!\n (coq.typecheck (global (const «HB_unnamed_factory_27»)) X140) \n mixin-src: X illtyped"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1480,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1481"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.assert-ok!\n (coq.typecheck (global (const «HB_unnamed_factory_27»)) X140) \n mixin-src: X illtyped"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1482"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1482,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1483"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1483,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 310,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert-ok!","std.assert-ok!\n (coq.typecheck (global (const «HB_unnamed_factory_27»)) X140) \n mixin-src: X illtyped"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!)."]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.typecheck (global (const «HB_unnamed_factory_27»)) X140"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := mixin-src: X illtyped"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1481,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1484"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.typecheck (global (const «HB_unnamed_factory_27»)) X140 X146"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1485"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1485,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1486"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1486,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X146 = ok ;\n X146 = error X147 , std.fatal-error-w-data mixin-src: X illtyped X147"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1487"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1487,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 311,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 312,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.typecheck","coq.typecheck (global (const «HB_unnamed_factory_27»)) X140 X146"]} +{"step" : 312,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 312,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.typecheck"]} +{"step" : 312,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 312,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1488"]} +{"step" : 312,"kind" : ["Info"],"goal_id" : 1488,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X140 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 312,"kind" : ["Info"],"goal_id" : 1484,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1489"]} +{"step" : 312,"kind" : ["Info"],"goal_id" : 1489,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X146 = ok"]} +{"step" : 313,"kind" : ["Info"],"goal_id" : 1488,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X140 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 313,"kind" : ["Info"],"goal_id" : 1488,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 313,"kind" : ["Info"],"goal_id" : 1488,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 313,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X140 := app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]"]} +{"step" : 313,"kind" : ["Info"],"goal_id" : 1488,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 314,"kind" : ["Info"],"goal_id" : 1489,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X146 = ok"]} +{"step" : 314,"kind" : ["Info"],"goal_id" : 1489,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 314,"kind" : ["Info"],"goal_id" : 1489,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 314,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X146 := ok"]} +{"step" : 314,"kind" : ["Info"],"goal_id" : 1489,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 315,"kind" : ["Info"],"goal_id" : 1485,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 315,"kind" : ["Info"],"goal_id" : 1485,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 315,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1481","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:","(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned)."]} +{"step" : 315,"kind" : ["Info"],"goal_id" : 1485,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 316,"kind" : ["Info"],"goal_id" : 1486,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","ok = ok ; ok = error X147 , std.fatal-error-w-data mixin-src: X illtyped X147"]} +{"step" : 316,"kind" : ["Info"],"goal_id" : 1486,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 316,"kind" : ["Info"],"goal_id" : 1486,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 316,"kind" : ["Info"],"goal_id" : 1486,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 316,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ok = ok"]} +{"step" : 316,"kind" : ["Info"],"goal_id" : 1486,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1490"]} +{"step" : 316,"kind" : ["Info"],"goal_id" : 1490,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["ok = ok"]} +{"step" : 316,"kind" : ["Info"],"goal_id" : 1490,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 317,"kind" : ["Info"],"goal_id" : 1490,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","ok = ok"]} +{"step" : 317,"kind" : ["Info"],"goal_id" : 1490,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 317,"kind" : ["Info"],"goal_id" : 1490,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 317,"kind" : ["Info"],"goal_id" : 1490,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 318,"kind" : ["Info"],"goal_id" : 1487,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 318,"kind" : ["Info"],"goal_id" : 1487,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 318,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1486","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 318,"kind" : ["Info"],"goal_id" : 1487,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 319,"kind" : ["Info"],"goal_id" : 1482,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 319,"kind" : ["Info"],"goal_id" : 1482,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 319,"kind" : ["Info"],"goal_id" : 1482,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1483,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1483,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1483,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1483,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1483,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1491"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1492"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1492,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1493"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1493,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 320,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1494"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1495"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1495,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1496"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1496,"runtime_id" : 8,"name" : "user:newgoal","payload" : [", (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)"]} +{"step" : 321,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["not","not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 52, column 0, character 609:","File \"elpi-builtin.elpi\", line 54, column 0, character 631:"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 52, column 0, character 609:","(not A0) :- A0, (!), fail."]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1494,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1497"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1498"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1498,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1499"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1499,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["fail"]} +{"step" : 322,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.safe-dest-app","coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 72, column 0, character 2783:","File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 72, column 0, character 2783:","(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3)."]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «IsSelfA'.axioms_»)"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (indt «nat»)]"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := global _"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1497,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1500"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1500,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1500,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1501"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1501,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global _) X148"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1500,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1502"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1502,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.append X148 [global (indt «nat»)] X149"]} +{"step" : 323,"kind" : ["Info"],"goal_id" : 1500,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 324,"kind" : ["Info"],"goal_id" : 1500,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 324,"kind" : ["Info"],"goal_id" : 1500,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 324,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1497","File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:","(coq.safe-dest-app A0 A0 []) :- ."]} +{"step" : 324,"kind" : ["Info"],"goal_id" : 1500,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 325,"kind" : ["Info"],"goal_id" : 1501,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.safe-dest-app","coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global _) X148"]} +{"step" : 325,"kind" : ["Info"],"goal_id" : 1501,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 325,"kind" : ["Info"],"goal_id" : 1501,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:"]} +{"step" : 325,"kind" : ["Info"],"goal_id" : 1501,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 74, column 0, character 2886:","(coq.safe-dest-app A0 A0 []) :- ."]} +{"step" : 325,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «IsSelfA'.axioms_»)"]} +{"step" : 325,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X148 := []"]} +{"step" : 325,"kind" : ["Info"],"goal_id" : 1501,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 326,"kind" : ["Info"],"goal_id" : 1502,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.append","std.append [] [global (indt «nat»)] X149"]} +{"step" : 326,"kind" : ["Info"],"goal_id" : 1502,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 326,"kind" : ["Info"],"goal_id" : 1502,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 81, column 0, character 2754:"]} +{"step" : 326,"kind" : ["Info"],"goal_id" : 1502,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 81, column 0, character 2754:","(std.append [] A0 A0) :- ."]} +{"step" : 326,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [global (indt «nat»)]"]} +{"step" : 326,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X149 := [global (indt «nat»)]"]} +{"step" : 326,"kind" : ["Info"],"goal_id" : 1502,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 327,"kind" : ["Info"],"goal_id" : 1498,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 327,"kind" : ["Info"],"goal_id" : 1498,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 327,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1494","File \"elpi-builtin.elpi\", line 54, column 0, character 631:","(not _) :- ."]} +{"step" : 327,"kind" : ["Info"],"goal_id" : 1498,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 328,"kind" : ["Info"],"goal_id" : 1499,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["fail","fail"]} +{"step" : 328,"kind" : ["Info"],"goal_id" : 1499,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 328,"kind" : ["Info"],"goal_id" : 1499,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 328,"kind" : ["Info"],"goal_id" : 1499,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 329,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","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"]} +{"step" : 329,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 329,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 329,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 329,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 329,"kind" : ["Info"],"goal_id" : 1491,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1503"]} +{"step" : 329,"kind" : ["Info"],"goal_id" : 1503,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 329,"kind" : ["Info"],"goal_id" : 1503,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 330,"kind" : ["Info"],"goal_id" : 1503,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 330,"kind" : ["Info"],"goal_id" : 1503,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 330,"kind" : ["Info"],"goal_id" : 1503,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 330,"kind" : ["Info"],"goal_id" : 1503,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 330,"kind" : ["Info"],"goal_id" : 1503,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 331,"kind" : ["Info"],"goal_id" : 1492,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 331,"kind" : ["Info"],"goal_id" : 1492,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 331,"kind" : ["Info"],"goal_id" : 1492,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1493,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1493,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1493,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1493,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [factory-provides X143 X144, list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1493,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1504"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1505"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1505,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1506"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1506,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [factory-provides X143 X144, list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]"]} +{"step" : 332,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.term->gref","coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 431, column 0, character 18295:","File \"/build/source/./elpi/coq-lib.elpi\", line 433, column 0, character 18415:"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 431, column 0, character 18295:","(coq.term->gref (app [A0 | _]) A1) :- (!), (coq.term->gref A0 A1)."]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (indt «IsSelfA'.axioms_»)"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X143"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1504,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1507"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1507,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1507,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1508"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1508,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.term->gref (global (indt «IsSelfA'.axioms_»)) X143"]} +{"step" : 333,"kind" : ["Info"],"goal_id" : 1507,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 334,"kind" : ["Info"],"goal_id" : 1507,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 334,"kind" : ["Info"],"goal_id" : 1507,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 334,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1504","File \"/build/source/./elpi/coq-lib.elpi\", line 433, column 0, character 18415:","(coq.term->gref A0 _) :- (std.fatal-error-w-data\n term->gref: input has no global reference A0)."]} +{"step" : 334,"kind" : ["Info"],"goal_id" : 1507,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 1508,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.term->gref","coq.term->gref (global (indt «IsSelfA'.axioms_»)) X143"]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 1508,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 1508,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 430, column 0, character 18259:","File \"/build/source/./elpi/coq-lib.elpi\", line 433, column 0, character 18415:"]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 1508,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 430, column 0, character 18259:","(coq.term->gref (global A0) A0) :- (!)."]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X143 := indt «IsSelfA'.axioms_»"]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 1508,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1509"]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 1509,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 335,"kind" : ["Info"],"goal_id" : 1509,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 336,"kind" : ["Info"],"goal_id" : 1509,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 336,"kind" : ["Info"],"goal_id" : 1509,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 336,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1508","File \"/build/source/./elpi/coq-lib.elpi\", line 433, column 0, character 18415:","(coq.term->gref A0 _) :- (std.fatal-error-w-data\n term->gref: input has no global reference A0)."]} +{"step" : 336,"kind" : ["Info"],"goal_id" : 1509,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 337,"kind" : ["Info"],"goal_id" : 1505,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 337,"kind" : ["Info"],"goal_id" : 1505,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 337,"kind" : ["Info"],"goal_id" : 1505,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1506,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1506,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1506,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1506,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := factory-provides (indt «IsSelfA'.axioms_») X144"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1506,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1510"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-provides (indt «IsSelfA'.axioms_») X144"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1511"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1511,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1512"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1512,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]"]} +{"step" : 338,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-provides","factory-provides (indt «IsSelfA'.axioms_») X144"]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 86, column 0, character 2829:"]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 86, column 0, character 2829:","(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1])."]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X144"]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 1510,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1513"]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 1513,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [factory-alias->gref (indt «IsSelfA'.axioms_») X150, gref-deps X150 X151, \n w-params.map X151 (factory-provides.base X150) X144]"]} +{"step" : 339,"kind" : ["Info"],"goal_id" : 1513,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1513,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do!\n [factory-alias->gref (indt «IsSelfA'.axioms_») X150, gref-deps X150 X151, \n w-params.map X151 (factory-provides.base X150) X144]"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1513,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1513,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1513,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := factory-alias->gref (indt «IsSelfA'.axioms_») X150"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [gref-deps X150 X151, \n w-params.map X151 (factory-provides.base X150) X144]"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1513,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1514"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-alias->gref (indt «IsSelfA'.axioms_») X150"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1515"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1515,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1516"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1516,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [gref-deps X150 X151, w-params.map X151 (factory-provides.base X150) X144]"]} +{"step" : 340,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-alias->gref","factory-alias->gref (indt «IsSelfA'.axioms_») X150"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 74, column 0, character 2385:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 74, column 0, character 2385:","(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!)."]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X150"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1517"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev X150 (indt «IsSelfA'.axioms_») _"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1518"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1518,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 341,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev X150 (indt «IsSelfA'.axioms_») _"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indt «HasA.axioms_»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «HasA.phant_axioms»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- ."]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indc «HasA.Axioms_»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «HasA.phant_Build»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indt «HasB.axioms_»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «HasB.phant_axioms»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- ."]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indc «HasB.Axioms_»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «HasB.phant_Build»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indt «IsSelfA.axioms_»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «IsSelfA.phant_axioms»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- ."]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indc «IsSelfA.Axioms_»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «IsSelfA.phant_Build»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indt «IsSelfA'.axioms_»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «IsSelfA'.phant_axioms»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- ."]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indc «IsSelfA'.Axioms_»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with const «IsSelfA'.phant_Build»"]} +{"step" : 342,"kind" : ["Info"],"goal_id" : 1517,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-alias->gref","factory-alias->gref (indt «IsSelfA'.axioms_») X150"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!)."]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X150 := indt «IsSelfA'.axioms_»"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1514,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1519"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev (indt «IsSelfA'.axioms_») _ _"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1520"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1520,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 343,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev (indt «IsSelfA'.axioms_») _ _"]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «HasA.axioms_»"]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «HasB.axioms_»"]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «IsSelfA.axioms_»"]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 344,"kind" : ["Info"],"goal_id" : 1519,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 345,"kind" : ["Info"],"goal_id" : 1520,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 345,"kind" : ["Info"],"goal_id" : 1520,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 345,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1514","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «A.axioms_») (indt «A.axioms_»)) :- ."]} +{"step" : 345,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1514","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «B.axioms_») (indt «B.axioms_»)) :- ."]} +{"step" : 345,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1514","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «SelfA.axioms_») (indt «SelfA.axioms_»)) :- ."]} +{"step" : 345,"kind" : ["Info"],"goal_id" : 1520,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 346,"kind" : ["Info"],"goal_id" : 1515,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 346,"kind" : ["Info"],"goal_id" : 1515,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 346,"kind" : ["Info"],"goal_id" : 1515,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1516,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do!\n [gref-deps (indt «IsSelfA'.axioms_») X151, \n w-params.map X151 (factory-provides.base (indt «IsSelfA'.axioms_»)) X144]"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1516,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1516,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1516,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := gref-deps (indt «IsSelfA'.axioms_») X151"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [w-params.map X151 (factory-provides.base (indt «IsSelfA'.axioms_»)) \n X144]"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1516,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1521"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["gref-deps (indt «IsSelfA'.axioms_») X151"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1522"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1522,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1523"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1523,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [w-params.map X151 (factory-provides.base (indt «IsSelfA'.axioms_»)) X144]"]} +{"step" : 347,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 348,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["gref-deps","gref-deps (indt «IsSelfA'.axioms_») X151"]} +{"step" : 348,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 348,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 348,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(gref-deps (indt «IsSelfA'.axioms_») \n (w-params.nil TheType (sort (typ «interleave_context.382»)) (c0 \\ []))) :- ."]} +{"step" : 348,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X151 := w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []"]} +{"step" : 348,"kind" : ["Info"],"goal_id" : 1521,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 349,"kind" : ["Info"],"goal_id" : 1522,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 349,"kind" : ["Info"],"goal_id" : 1522,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 349,"kind" : ["Info"],"goal_id" : 1522,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1523,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1523,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1523,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1523,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := w-params.map\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n (factory-provides.base (indt «IsSelfA'.axioms_»)) X144"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1523,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1524"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["w-params.map\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n (factory-provides.base (indt «IsSelfA'.axioms_»)) X144"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1525"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1525,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1526"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1526,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! []"]} +{"step" : 350,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["w-params.map","w-params.map\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n (factory-provides.base (indt «IsSelfA'.axioms_»)) X144"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 245, column 0, character 9440:"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 245, column 0, character 9440:","(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2)."]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := factory-provides.base (indt «IsSelfA'.axioms_»)"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X144"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 1524,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1527"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 1527,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 351,"kind" : ["Info"],"goal_id" : 1527,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 1527,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["w-params.then","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"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 1527,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 1527,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 239, column 0, character 9183:"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 1527,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 239, column 0, character 9183:","(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4)."]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := mk-w-params.cons-name"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := mk-w-params.nil-name"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := factory-provides.base (indt «IsSelfA'.axioms_»)"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := X144"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 1527,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1528"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 1528,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 352,"kind" : ["Info"],"goal_id" : 1528,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 1528,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["w-params.fold","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"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 1528,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 1528,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 213, column 0, character 8143:"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 1528,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 213, column 0, character 8143:","(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3)."]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := mk-w-params.cons-name"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X144"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 1528,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1529"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 1529,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 353,"kind" : ["Info"],"goal_id" : 1529,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1529,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["w-params.fold.params","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"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1529,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1529,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 224, column 0, character 8609:"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1529,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 224, column 0, character 8609:","(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5])."]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := TheType"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := sort (typ «interleave_context.382»)"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0 \\\n[]"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := []"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A5 := X144"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1529,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1530"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1530,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1530,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1531"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1531,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 354,"kind" : ["Info"],"goal_id" : 1530,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 355,"kind" : ["Info"],"goal_id" : 1530,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 355,"kind" : ["Info"],"goal_id" : 1530,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 355,"kind" : ["Info"],"goal_id" : 1530,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1531,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1531,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1531,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1531,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.id->name TheType X152"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1531,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1532"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.id->name TheType X152"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1533"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1533,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1534"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1534,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 356,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.id->name","coq.id->name TheType X152"]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"coq-builtin.elpi\", line 1296, column 0, character 51690:"]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"coq-builtin.elpi\", line 1296, column 0, character 51690:","(coq.id->name A0 A1) :- (coq.string->name A0 A1)."]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := TheType"]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X152"]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 1532,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1535"]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 1535,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.string->name TheType X152"]} +{"step" : 357,"kind" : ["Info"],"goal_id" : 1535,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 358,"kind" : ["Info"],"goal_id" : 1535,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.string->name","coq.string->name TheType X152"]} +{"step" : 358,"kind" : ["Info"],"goal_id" : 1535,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 358,"kind" : ["Info"],"goal_id" : 1535,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.string->name"]} +{"step" : 358,"kind" : ["Info"],"goal_id" : 1535,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 358,"kind" : ["Info"],"goal_id" : 1535,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1536"]} +{"step" : 358,"kind" : ["Info"],"goal_id" : 1536,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X152 = `TheType`"]} +{"step" : 359,"kind" : ["Info"],"goal_id" : 1536,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X152 = `TheType`"]} +{"step" : 359,"kind" : ["Info"],"goal_id" : 1536,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 359,"kind" : ["Info"],"goal_id" : 1536,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 359,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X152 := `TheType`"]} +{"step" : 359,"kind" : ["Info"],"goal_id" : 1536,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 360,"kind" : ["Info"],"goal_id" : 1533,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 360,"kind" : ["Info"],"goal_id" : 1533,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 360,"kind" : ["Info"],"goal_id" : 1533,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1534,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1534,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1534,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1534,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.rev [] X153"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1534,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1537"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.rev [] X153"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1538"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1538,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1539"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1539,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 361,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.rev","std.rev [] X153"]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 70, column 0, character 2457:"]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 70, column 0, character 2457:","(std.rev A0 A1) :- (std.rev.aux A0 [] A1)."]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X153"]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 1537,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1540"]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 1540,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.rev.aux [] [] X153"]} +{"step" : 362,"kind" : ["Info"],"goal_id" : 1540,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 363,"kind" : ["Info"],"goal_id" : 1540,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.rev.aux","std.rev.aux [] [] X153"]} +{"step" : 363,"kind" : ["Info"],"goal_id" : 1540,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 363,"kind" : ["Info"],"goal_id" : 1540,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 72, column 0, character 2534:"]} +{"step" : 363,"kind" : ["Info"],"goal_id" : 1540,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 72, column 0, character 2534:","(std.rev.aux [] A0 A0) :- ."]} +{"step" : 363,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 363,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X153 := []"]} +{"step" : 363,"kind" : ["Info"],"goal_id" : 1540,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 364,"kind" : ["Info"],"goal_id" : 1538,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 364,"kind" : ["Info"],"goal_id" : 1538,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 364,"kind" : ["Info"],"goal_id" : 1538,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1539,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1539,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1539,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1539,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1539,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1541"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1541,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1541,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1542"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1542,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1541,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1543"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1543,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! []"]} +{"step" : 365,"kind" : ["Info"],"goal_id" : 1541,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 366,"kind" : ["Info"],"goal_id" : 1541,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["sigma","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"]} +{"step" : 366,"kind" : ["Info"],"goal_id" : 1541,"runtime_id" : 8,"name" : "user:rule","payload" : ["sigma"]} +{"step" : 366,"kind" : ["Info"],"goal_id" : 1541,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1544"]} +{"step" : 366,"kind" : ["Info"],"goal_id" : 1544,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 366,"kind" : ["Info"],"goal_id" : 1544,"runtime_id" : 8,"name" : "user:rule:sigma","payload" : ["success"]} +{"step" : 367,"kind" : ["Info"],"goal_id" : 1544,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","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"]} +{"step" : 367,"kind" : ["Info"],"goal_id" : 1544,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 367,"kind" : ["Info"],"goal_id" : 1544,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1545"]} +{"step" : 367,"kind" : ["Info"],"goal_id" : 1545,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["pi c0 \\\n decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)"]} +{"step" : 367,"kind" : ["Info"],"goal_id" : 1544,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1546"]} +{"step" : 367,"kind" : ["Info"],"goal_id" : 1546,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) X154 \n X144"]} +{"step" : 367,"kind" : ["Info"],"goal_id" : 1544,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 368,"kind" : ["Info"],"goal_id" : 1545,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["pi","pi c0 \\\n decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)"]} +{"step" : 368,"kind" : ["Info"],"goal_id" : 1545,"runtime_id" : 8,"name" : "user:rule","payload" : ["pi"]} +{"step" : 368,"kind" : ["Info"],"goal_id" : 1545,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1547"]} +{"step" : 368,"kind" : ["Info"],"goal_id" : 1547,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)"]} +{"step" : 368,"kind" : ["Info"],"goal_id" : 1547,"runtime_id" : 8,"name" : "user:rule:pi","payload" : ["success"]} +{"step" : 369,"kind" : ["Info"],"goal_id" : 1547,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)"]} +{"step" : 369,"kind" : ["Info"],"goal_id" : 1547,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 369,"kind" : ["Info"],"goal_id" : 1547,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1548"]} +{"step" : 369,"kind" : ["Info"],"goal_id" : 1548,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)"]} +{"step" : 369,"kind" : ["Info"],"goal_id" : 1548,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 1548,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-provides.base","factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 1548,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 1548,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 100, column 0, character 3290:"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 1548,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 100, column 0, character 3290:","(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3])."]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA'.axioms_»"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c0"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X154 c0"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 1548,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1549"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 1549,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)]"]} +{"step" : 370,"kind" : ["Info"],"goal_id" : 1549,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1549,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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)]"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1549,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1549,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1549,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.findall (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)]"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1549,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1550"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.findall (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1551"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1551,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1552"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1552,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)]"]} +{"step" : 371,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.findall","std.findall (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1"]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:"]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:","(std.findall A0 A1) :- (findall_solutions A0 A1)."]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := from (indt «IsSelfA'.axioms_») X155^1 X156^1"]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X157^1"]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 1550,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1553"]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 1553,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall_solutions (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1"]} +{"step" : 372,"kind" : ["Info"],"goal_id" : 1553,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 373,"kind" : ["Info"],"goal_id" : 1553,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall_solutions","findall_solutions (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1"]} +{"step" : 373,"kind" : ["Info"],"goal_id" : 1553,"runtime_id" : 8,"name" : "user:rule","payload" : ["findall"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:newgoal","payload" : ["from (indt «IsSelfA'.axioms_») X0^1 X1^1"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:curgoal","payload" : ["from","from (indt «IsSelfA'.axioms_») X0^1 X1^1"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «HasA.axioms_») (indt «HasA.axioms_») \n (const «HasA.identity_builder»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «HasA.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «A.axioms_») (indt «HasA.axioms_») \n (const «A.interleave_context_HasA_mixin»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «A.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «HasB.axioms_») (indt «HasB.axioms_») \n (const «HasB.identity_builder»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «HasB.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «B.axioms_») (indt «HasB.axioms_») \n (const «B.interleave_context_HasB_mixin»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «B.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «IsSelfA.axioms_») (indt «IsSelfA.axioms_») \n (const «IsSelfA.identity_builder»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «IsSelfA.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «SelfA.axioms_») (indt «HasA.axioms_») \n (const «SelfA.interleave_context_HasA_mixin»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «SelfA.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «SelfA.axioms_») (indt «HasB.axioms_») \n (const «SelfA.interleave_context_HasB_mixin»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «SelfA.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «SelfA.axioms_») (indt «IsSelfA.axioms_») \n (const «SelfA.interleave_context_IsSelfA_mixin»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA'.axioms_» with indt «SelfA.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 10,"name" : "user:assign","payload" : ["X0^1 := indt «IsSelfA.axioms_»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 10,"name" : "user:assign","payload" : ["X1^1 := const «Builders_18.HB_unnamed_factory_24»"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:curgoal","payload" : ["from","from (indt «IsSelfA'.axioms_») X0^1 X1^1"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) :- ."]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 10,"name" : "user:assign","payload" : ["X0^1 := indt «HasB.axioms_»"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 10,"name" : "user:assign","payload" : ["X1^1 := const «Builders_18.HB_unnamed_factory_22»"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:curgoal","payload" : ["from","from (indt «IsSelfA'.axioms_») X0^1 X1^1"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) :- ."]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 10,"name" : "user:assign","payload" : ["X0^1 := indt «HasA.axioms_»"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 10,"name" : "user:assign","payload" : ["X1^1 := const «Builders_18.HB_unnamed_factory_20»"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 1555,"runtime_id" : 10,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 373,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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»)]"]} +{"step" : 373,"kind" : ["Info"],"goal_id" : 1553,"runtime_id" : 8,"name" : "user:rule:findall","payload" : ["success"]} +{"step" : 374,"kind" : ["Info"],"goal_id" : 1551,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 374,"kind" : ["Info"],"goal_id" : 1551,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 374,"kind" : ["Info"],"goal_id" : 1551,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1552,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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)]"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1552,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1552,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1552,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)]"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1552,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1556"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1557"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1557,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1558"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1558,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)]"]} +{"step" : 375,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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»)]"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := from_mixin"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X158^1 := [X160^1 | X161^1]"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1556,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1559"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1559,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) X160^1"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1559,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1560"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1560,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 376,"kind" : ["Info"],"goal_id" : 1559,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 377,"kind" : ["Info"],"goal_id" : 1559,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["from_mixin","from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) X160^1"]} +{"step" : 377,"kind" : ["Info"],"goal_id" : 1559,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 377,"kind" : ["Info"],"goal_id" : 1559,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 12, column 0, character 414:"]} +{"step" : 377,"kind" : ["Info"],"goal_id" : 1559,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 12, column 0, character 414:","(from_mixin (from _ A0 _) A0) :- ."]} +{"step" : 377,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA.axioms_»"]} +{"step" : 377,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X160^1 := indt «IsSelfA.axioms_»"]} +{"step" : 377,"kind" : ["Info"],"goal_id" : 1559,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1560,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1560,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1560,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1560,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)]"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := from_mixin"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X161^1 := [X162^1 | X163^1]"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1560,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1561"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1561,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) X162^1"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1561,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1562"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1562,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X163^1"]} +{"step" : 378,"kind" : ["Info"],"goal_id" : 1561,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 379,"kind" : ["Info"],"goal_id" : 1561,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["from_mixin","from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) X162^1"]} +{"step" : 379,"kind" : ["Info"],"goal_id" : 1561,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 379,"kind" : ["Info"],"goal_id" : 1561,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 12, column 0, character 414:"]} +{"step" : 379,"kind" : ["Info"],"goal_id" : 1561,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 12, column 0, character 414:","(from_mixin (from _ A0 _) A0) :- ."]} +{"step" : 379,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «HasB.axioms_»"]} +{"step" : 379,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X162^1 := indt «HasB.axioms_»"]} +{"step" : 379,"kind" : ["Info"],"goal_id" : 1561,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1562,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X163^1"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1562,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1562,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1562,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := from_mixin"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X163^1 := [X164^1 | X165^1]"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1562,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1563"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1563,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) X164^1"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1563,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1564"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1564,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [] from_mixin X165^1"]} +{"step" : 380,"kind" : ["Info"],"goal_id" : 1563,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 381,"kind" : ["Info"],"goal_id" : 1563,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["from_mixin","from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) X164^1"]} +{"step" : 381,"kind" : ["Info"],"goal_id" : 1563,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 381,"kind" : ["Info"],"goal_id" : 1563,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 12, column 0, character 414:"]} +{"step" : 381,"kind" : ["Info"],"goal_id" : 1563,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 12, column 0, character 414:","(from_mixin (from _ A0 _) A0) :- ."]} +{"step" : 381,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «HasA.axioms_»"]} +{"step" : 381,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X164^1 := indt «HasA.axioms_»"]} +{"step" : 381,"kind" : ["Info"],"goal_id" : 1563,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 382,"kind" : ["Info"],"goal_id" : 1564,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] from_mixin X165^1"]} +{"step" : 382,"kind" : ["Info"],"goal_id" : 1564,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 382,"kind" : ["Info"],"goal_id" : 1564,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 382,"kind" : ["Info"],"goal_id" : 1564,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 382,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X165^1 := []"]} +{"step" : 382,"kind" : ["Info"],"goal_id" : 1564,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 383,"kind" : ["Info"],"goal_id" : 1557,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 383,"kind" : ["Info"],"goal_id" : 1557,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 383,"kind" : ["Info"],"goal_id" : 1557,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1558,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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)]"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1558,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1558,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1558,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [std.map2 X159^1 \n [indt «IsSelfA.axioms_», indt «HasB.axioms_», \n indt «HasA.axioms_»] (factory-provides.one [] c0) (X154 c0)]"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1558,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1565"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1566"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1566,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1567"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1567,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [std.map2 X159^1 \n [indt «IsSelfA.axioms_», indt «HasB.axioms_», indt «HasA.axioms_»] \n (factory-provides.one [] c0) (X154 c0)]"]} +{"step" : 384,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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»)]"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := from_builder"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X159^1 := [X166^1 | X167^1]"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1565,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1568"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1568,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["from_builder\n (from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) X166^1"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1568,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1569"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1569,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 385,"kind" : ["Info"],"goal_id" : 1568,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 386,"kind" : ["Info"],"goal_id" : 1568,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["from_builder","from_builder\n (from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) X166^1"]} +{"step" : 386,"kind" : ["Info"],"goal_id" : 1568,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 386,"kind" : ["Info"],"goal_id" : 1568,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 15, column 0, character 476:"]} +{"step" : 386,"kind" : ["Info"],"goal_id" : 1568,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 15, column 0, character 476:","(from_builder (from _ _ A0) (global A0)) :- ."]} +{"step" : 386,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := const «Builders_18.HB_unnamed_factory_24»"]} +{"step" : 386,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X166^1 := global (const «Builders_18.HB_unnamed_factory_24»)"]} +{"step" : 386,"kind" : ["Info"],"goal_id" : 1568,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1569,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1569,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1569,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1569,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)]"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := from_builder"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X167^1 := [X168^1 | X169^1]"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1569,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1570"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1570,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["from_builder\n (from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) X168^1"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1570,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1571"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1571,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X169^1"]} +{"step" : 387,"kind" : ["Info"],"goal_id" : 1570,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 388,"kind" : ["Info"],"goal_id" : 1570,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["from_builder","from_builder\n (from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) X168^1"]} +{"step" : 388,"kind" : ["Info"],"goal_id" : 1570,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 388,"kind" : ["Info"],"goal_id" : 1570,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 15, column 0, character 476:"]} +{"step" : 388,"kind" : ["Info"],"goal_id" : 1570,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 15, column 0, character 476:","(from_builder (from _ _ A0) (global A0)) :- ."]} +{"step" : 388,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := const «Builders_18.HB_unnamed_factory_22»"]} +{"step" : 388,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X168^1 := global (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 388,"kind" : ["Info"],"goal_id" : 1570,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1571,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X169^1"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1571,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1571,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1571,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := from_builder"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X169^1 := [X170^1 | X171^1]"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1571,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1572"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1572,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["from_builder\n (from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) X170^1"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1572,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1573"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1573,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [] from_builder X171^1"]} +{"step" : 389,"kind" : ["Info"],"goal_id" : 1572,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 390,"kind" : ["Info"],"goal_id" : 1572,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["from_builder","from_builder\n (from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) X170^1"]} +{"step" : 390,"kind" : ["Info"],"goal_id" : 1572,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 390,"kind" : ["Info"],"goal_id" : 1572,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 15, column 0, character 476:"]} +{"step" : 390,"kind" : ["Info"],"goal_id" : 1572,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 15, column 0, character 476:","(from_builder (from _ _ A0) (global A0)) :- ."]} +{"step" : 390,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := const «Builders_18.HB_unnamed_factory_20»"]} +{"step" : 390,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X170^1 := global (const «Builders_18.HB_unnamed_factory_20»)"]} +{"step" : 390,"kind" : ["Info"],"goal_id" : 1572,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 391,"kind" : ["Info"],"goal_id" : 1573,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] from_builder X171^1"]} +{"step" : 391,"kind" : ["Info"],"goal_id" : 1573,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 391,"kind" : ["Info"],"goal_id" : 1573,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 391,"kind" : ["Info"],"goal_id" : 1573,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 391,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X171^1 := []"]} +{"step" : 391,"kind" : ["Info"],"goal_id" : 1573,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 392,"kind" : ["Info"],"goal_id" : 1566,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 392,"kind" : ["Info"],"goal_id" : 1566,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 392,"kind" : ["Info"],"goal_id" : 1566,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1567,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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)]"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1567,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1567,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1567,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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)"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1567,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1574"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1575"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1575,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1576"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1576,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! []"]} +{"step" : 393,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map2","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)"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 141, column 0, character 4745:"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 141, column 0, character 4745:","(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6)."]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (const «Builders_18.HB_unnamed_factory_24»)"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (const «Builders_18.HB_unnamed_factory_22»), \n global (const «Builders_18.HB_unnamed_factory_20»)]"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := indt «IsSelfA.axioms_»"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := [indt «HasB.axioms_», indt «HasA.axioms_»]"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := factory-provides.one [] c0"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign:simplify","payload" : ["X154 := c0 \\\nX172 c0"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X172^1 := [X173^1 | X174^1]"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1574,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1577"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1577,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_24»)) \n (indt «IsSelfA.axioms_») X173^1"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1577,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1578"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1578,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 394,"kind" : ["Info"],"goal_id" : 1577,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 1577,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-provides.one","factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_24»)) \n (indt «IsSelfA.axioms_») X173^1"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 1577,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 1577,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 108, column 0, character 3601:"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 1577,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 108, column 0, character 3601:","(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins])."]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := c0"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := global (const «Builders_18.HB_unnamed_factory_24»)"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := indt «IsSelfA.axioms_»"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X173^1 := triple (indt «IsSelfA.axioms_») X175^1 c0"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 1577,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1579"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 1579,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 395,"kind" : ["Info"],"goal_id" : 1579,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1579,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1579,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1579,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1579,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) \n X176^1) Builder illtyped"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1579,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1580"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1) \n Builder illtyped"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1581"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1581,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1582"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1582,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 396,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert-ok!","std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1) \n Builder illtyped"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!)."]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) \n X176^1"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := Builder illtyped"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1580,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1583"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1 \n X179^1"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1584"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1584,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1585"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1585,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X179^1 = ok ;\n X179^1 = error X180^1 , std.fatal-error-w-data Builder illtyped X180^1"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1586"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1586,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 397,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 398,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.typecheck","coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1 \n X179^1"]} +{"step" : 398,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 398,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.typecheck"]} +{"step" : 398,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 398,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1587"]} +{"step" : 398,"kind" : ["Info"],"goal_id" : 1587,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]]"]} +{"step" : 398,"kind" : ["Info"],"goal_id" : 1583,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1588"]} +{"step" : 398,"kind" : ["Info"],"goal_id" : 1588,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X179^1 = ok"]} +{"step" : 399,"kind" : ["Info"],"goal_id" : 1587,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","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]]"]} +{"step" : 399,"kind" : ["Info"],"goal_id" : 1587,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 399,"kind" : ["Info"],"goal_id" : 1587,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 399,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]]"]} +{"step" : 399,"kind" : ["Info"],"goal_id" : 1587,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 400,"kind" : ["Info"],"goal_id" : 1588,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X179^1 = ok"]} +{"step" : 400,"kind" : ["Info"],"goal_id" : 1588,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 400,"kind" : ["Info"],"goal_id" : 1588,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 400,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X179^1 := ok"]} +{"step" : 400,"kind" : ["Info"],"goal_id" : 1588,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 401,"kind" : ["Info"],"goal_id" : 1584,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 401,"kind" : ["Info"],"goal_id" : 1584,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 401,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1580","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:","(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned)."]} +{"step" : 401,"kind" : ["Info"],"goal_id" : 1584,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 402,"kind" : ["Info"],"goal_id" : 1585,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","ok = ok ; ok = error X180^1 , std.fatal-error-w-data Builder illtyped X180^1"]} +{"step" : 402,"kind" : ["Info"],"goal_id" : 1585,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 402,"kind" : ["Info"],"goal_id" : 1585,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 402,"kind" : ["Info"],"goal_id" : 1585,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 402,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ok = ok"]} +{"step" : 402,"kind" : ["Info"],"goal_id" : 1585,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1589"]} +{"step" : 402,"kind" : ["Info"],"goal_id" : 1589,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["ok = ok"]} +{"step" : 402,"kind" : ["Info"],"goal_id" : 1589,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 403,"kind" : ["Info"],"goal_id" : 1589,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","ok = ok"]} +{"step" : 403,"kind" : ["Info"],"goal_id" : 1589,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 403,"kind" : ["Info"],"goal_id" : 1589,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 403,"kind" : ["Info"],"goal_id" : 1589,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 404,"kind" : ["Info"],"goal_id" : 1586,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 404,"kind" : ["Info"],"goal_id" : 1586,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 404,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1585","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 404,"kind" : ["Info"],"goal_id" : 1586,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 405,"kind" : ["Info"],"goal_id" : 1581,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 405,"kind" : ["Info"],"goal_id" : 1581,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 405,"kind" : ["Info"],"goal_id" : 1581,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1582,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1582,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1582,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1582,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1582,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1590"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1591"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1591,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1592"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1592,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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]"]} +{"step" : 406,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 407,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","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"]} +{"step" : 407,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 407,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1593"]} +{"step" : 407,"kind" : ["Info"],"goal_id" : 1593,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 407,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1594"]} +{"step" : 407,"kind" : ["Info"],"goal_id" : 1594,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.subst-prod [c0] X177^1 X178^1"]} +{"step" : 407,"kind" : ["Info"],"goal_id" : 1590,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 1593,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.subst-prod","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"]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 1593,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 1593,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 36, column 0, character 1340:","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:"]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 1593,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 36, column 0, character 1340:","(coq.subst-prod [] A0 A0) :- (!)."]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]]"]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]]"]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 1593,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1595"]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 1595,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 408,"kind" : ["Info"],"goal_id" : 1595,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 409,"kind" : ["Info"],"goal_id" : 1595,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 409,"kind" : ["Info"],"goal_id" : 1595,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 409,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1593","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:","(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3)."]} +{"step" : 409,"kind" : ["Info"],"goal_id" : 1595,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1594,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.subst-prod","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"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1594,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1594,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 37, column 0, character 1368:","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:","File \"/build/source/./elpi/coq-lib.elpi\", line 39, column 0, character 1505:"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1594,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 37, column 0, character 1368:","(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3)."]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]]"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X178^1"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1594,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1596"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1596,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1596,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1597"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1597,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 410,"kind" : ["Info"],"goal_id" : 1596,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 411,"kind" : ["Info"],"goal_id" : 1596,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 411,"kind" : ["Info"],"goal_id" : 1596,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 411,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1594","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:","(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3)."]} +{"step" : 411,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1594","File \"/build/source/./elpi/coq-lib.elpi\", line 39, column 0, character 1505:","(coq.subst-prod [_ | _] A0 _) :- (!), \n (std.fatal-error-w-data subst-prod: not a product A0)."]} +{"step" : 411,"kind" : ["Info"],"goal_id" : 1596,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 1597,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.subst-prod","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"]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 1597,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 1597,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 36, column 0, character 1340:","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:"]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 1597,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 36, column 0, character 1340:","(coq.subst-prod [] A0 A0) :- (!)."]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]]"]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]]"]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 1597,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1598"]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 1598,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 412,"kind" : ["Info"],"goal_id" : 1598,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 413,"kind" : ["Info"],"goal_id" : 1598,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 413,"kind" : ["Info"],"goal_id" : 1598,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 413,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1597","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:","(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3)."]} +{"step" : 413,"kind" : ["Info"],"goal_id" : 1598,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 414,"kind" : ["Info"],"goal_id" : 1591,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 414,"kind" : ["Info"],"goal_id" : 1591,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 414,"kind" : ["Info"],"goal_id" : 1591,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1592,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","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]"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1592,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1592,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1592,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1592,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1599"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1600"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1600,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1601"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1601,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! []"]} +{"step" : 415,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert!","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"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 35, column 0, character 1155:"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 35, column 0, character 1155:","(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!)."]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := The conclusion of a builder is a mixin whose parameters depend on other mixins"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1599,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1602"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1602,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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)"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1602,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1603"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1603,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 416,"kind" : ["Info"],"goal_id" : 1602,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 417,"kind" : ["Info"],"goal_id" : 1602,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","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)"]} +{"step" : 417,"kind" : ["Info"],"goal_id" : 1602,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 417,"kind" : ["Info"],"goal_id" : 1602,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 417,"kind" : ["Info"],"goal_id" : 1602,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 417,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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"]} +{"step" : 417,"kind" : ["Info"],"goal_id" : 1602,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1604"]} +{"step" : 417,"kind" : ["Info"],"goal_id" : 1604,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 417,"kind" : ["Info"],"goal_id" : 1604,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1604,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["extract-conclusion-params","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"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1604,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1604,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 115, column 0, character 3974:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 117, column 0, character 4090:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 122, column 0, character 4303:"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1604,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 115, column 0, character 3974:","(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3)))."]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app [global (const «IsSelfA'.phant_axioms»), c0]"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]]"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X175^1"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1604,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1605"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1605,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1605,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1606"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1606,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 418,"kind" : ["Info"],"goal_id" : 1605,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 419,"kind" : ["Info"],"goal_id" : 1605,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 419,"kind" : ["Info"],"goal_id" : 1605,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 419,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1604","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 117, column 0, character 4090:","(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))."]} +{"step" : 419,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1604","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 122, column 0, character 4303:","(extract-conclusion-params A0 A1 A2) :- (whd1 A1 A3), (!), \n (extract-conclusion-params A0 A3 A2)."]} +{"step" : 419,"kind" : ["Info"],"goal_id" : 1605,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 420,"kind" : ["Info"],"goal_id" : 1606,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["pi","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"]} +{"step" : 420,"kind" : ["Info"],"goal_id" : 1606,"runtime_id" : 8,"name" : "user:rule","payload" : ["pi"]} +{"step" : 420,"kind" : ["Info"],"goal_id" : 1606,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1607"]} +{"step" : 420,"kind" : ["Info"],"goal_id" : 1607,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 420,"kind" : ["Info"],"goal_id" : 1607,"runtime_id" : 8,"name" : "user:rule:pi","payload" : ["success"]} +{"step" : 421,"kind" : ["Info"],"goal_id" : 1607,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","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"]} +{"step" : 421,"kind" : ["Info"],"goal_id" : 1607,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 421,"kind" : ["Info"],"goal_id" : 1607,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1608"]} +{"step" : 421,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 421,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["extract-conclusion-params","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"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 115, column 0, character 3974:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 117, column 0, character 4090:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 122, column 0, character 4303:"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 115, column 0, character 3974:","(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3)))."]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["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"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 117, column 0, character 4090:","(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))."]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := indt «IsSelfA.axioms_»"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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]]"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X175^1"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1608,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1609"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1610"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-alias->gref (indt «IsSelfA.axioms_») X181^2"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1611"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-nparams X181^2 X182^2"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1612"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1612,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1613"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1613,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.spy (std.take X182^2 X183^2 X175^1)"]} +{"step" : 422,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 423,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 423,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 423,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1608","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 122, column 0, character 4303:","(extract-conclusion-params A0 A1 A2) :- (whd1 A1 A3), (!), \n (extract-conclusion-params A0 A3 A2)."]} +{"step" : 423,"kind" : ["Info"],"goal_id" : 1609,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-alias->gref","factory-alias->gref (indt «IsSelfA.axioms_») X181^2"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 74, column 0, character 2385:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 74, column 0, character 2385:","(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!)."]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA.axioms_»"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X181^2"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1614"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev X181^2 (indt «IsSelfA.axioms_») _"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1615"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1615,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 424,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev X181^2 (indt «IsSelfA.axioms_») _"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indt «HasA.axioms_»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with const «HasA.phant_axioms»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- ."]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indc «HasA.Axioms_»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with const «HasA.phant_Build»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indt «HasB.axioms_»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with const «HasB.phant_axioms»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- ."]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indc «HasB.Axioms_»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with const «HasB.phant_Build»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indt «IsSelfA.axioms_»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with const «IsSelfA.phant_axioms»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- ."]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indc «IsSelfA.Axioms_»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with const «IsSelfA.phant_Build»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indt «IsSelfA'.axioms_»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with const «IsSelfA'.phant_axioms»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- ."]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indc «IsSelfA'.Axioms_»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with const «IsSelfA'.phant_Build»"]} +{"step" : 425,"kind" : ["Info"],"goal_id" : 1614,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-alias->gref","factory-alias->gref (indt «IsSelfA.axioms_») X181^2"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!)."]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «IsSelfA.axioms_»"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X181^2 := indt «IsSelfA.axioms_»"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1610,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1616"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev (indt «IsSelfA.axioms_») _ _"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1617"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1617,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 426,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev (indt «IsSelfA.axioms_») _ _"]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with indt «HasA.axioms_»"]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with indt «HasB.axioms_»"]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 427,"kind" : ["Info"],"goal_id" : 1616,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 428,"kind" : ["Info"],"goal_id" : 1617,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 428,"kind" : ["Info"],"goal_id" : 1617,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 428,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1616","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 428,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1610","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «A.axioms_») (indt «A.axioms_»)) :- ."]} +{"step" : 428,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1610","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «B.axioms_») (indt «B.axioms_»)) :- ."]} +{"step" : 428,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1610","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «SelfA.axioms_») (indt «SelfA.axioms_»)) :- ."]} +{"step" : 428,"kind" : ["Info"],"goal_id" : 1617,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-nparams","factory-nparams (indt «IsSelfA.axioms_») X182^2"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «HasA.axioms_») 1) :- ."]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with indt «HasA.axioms_»"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «A.axioms_») 1) :- ."]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with indt «A.axioms_»"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «HasB.axioms_») 1) :- ."]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with indt «HasB.axioms_»"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «B.axioms_») 1) :- ."]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «IsSelfA.axioms_» with indt «B.axioms_»"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «IsSelfA.axioms_») 0) :- ."]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X182^2 := 0"]} +{"step" : 429,"kind" : ["Info"],"goal_id" : 1611,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1612,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1612,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1612,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1612,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy-pack-holes c0"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X183^2 := [X184^2 | X185^2]"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1612,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1618"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1618,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy-pack-holes c0 c0 X184^2"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1618,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1619"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1619,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["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"]} +{"step" : 430,"kind" : ["Info"],"goal_id" : 1618,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1618,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy-pack-holes","copy-pack-holes c0 c0 X184^2"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1618,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1618,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1618,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:","(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2)."]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := c0"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X184^2"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1618,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1620"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall-local-canonical X186^2"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1621"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1621,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.copy-clauses-for-unfold X186^2 X187^2"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1622"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1622,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["[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"]} +{"step" : 431,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall-local-canonical","findall-local-canonical X186^2"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:","(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0)."]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X186^2"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1620,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1623"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1623,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.findall (local-canonical X189^2) X190^2"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1623,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1624"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1624,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map X190^2 local-canonical-gref X186^2"]} +{"step" : 432,"kind" : ["Info"],"goal_id" : 1623,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 1623,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.findall","std.findall (local-canonical X189^2) X190^2"]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 1623,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 1623,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:"]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 1623,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:","(std.findall A0 A1) :- (findall_solutions A0 A1)."]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := local-canonical X189^2"]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X190^2"]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 1623,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1625"]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 1625,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall_solutions (local-canonical X189^2) X190^2"]} +{"step" : 433,"kind" : ["Info"],"goal_id" : 1625,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 434,"kind" : ["Info"],"goal_id" : 1625,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall_solutions","findall_solutions (local-canonical X189^2) X190^2"]} +{"step" : 434,"kind" : ["Info"],"goal_id" : 1625,"runtime_id" : 8,"name" : "user:rule","payload" : ["findall"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 1627,"runtime_id" : 11,"name" : "user:newgoal","payload" : ["local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1627,"runtime_id" : 11,"name" : "user:curgoal","payload" : ["local-canonical","local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1627,"runtime_id" : 11,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1627,"runtime_id" : 11,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1627,"runtime_id" : 11,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 434,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X190^2 := []"]} +{"step" : 434,"kind" : ["Info"],"goal_id" : 1625,"runtime_id" : 8,"name" : "user:rule:findall","payload" : ["success"]} +{"step" : 435,"kind" : ["Info"],"goal_id" : 1624,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] local-canonical-gref X186^2"]} +{"step" : 435,"kind" : ["Info"],"goal_id" : 1624,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 435,"kind" : ["Info"],"goal_id" : 1624,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 435,"kind" : ["Info"],"goal_id" : 1624,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 435,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X186^2 := []"]} +{"step" : 435,"kind" : ["Info"],"goal_id" : 1624,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 436,"kind" : ["Info"],"goal_id" : 1621,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.copy-clauses-for-unfold","coq.copy-clauses-for-unfold [] X187^2"]} +{"step" : 436,"kind" : ["Info"],"goal_id" : 1621,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 436,"kind" : ["Info"],"goal_id" : 1621,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:"]} +{"step" : 436,"kind" : ["Info"],"goal_id" : 1621,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:","(coq.copy-clauses-for-unfold [] []) :- ."]} +{"step" : 436,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X187^2 := []"]} +{"step" : 436,"kind" : ["Info"],"goal_id" : 1621,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 437,"kind" : ["Info"],"goal_id" : 1622,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","[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"]} +{"step" : 437,"kind" : ["Info"],"goal_id" : 1622,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 437,"kind" : ["Info"],"goal_id" : 1622,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1628"]} +{"step" : 437,"kind" : ["Info"],"goal_id" : 1628,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c0 X184^2"]} +{"step" : 437,"kind" : ["Info"],"goal_id" : 1628,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1628,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy c0 X184^2"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1628,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1628,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1628,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X184^2"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1628,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1629"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name c0"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1630"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1630,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1631"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1631,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = X184^2"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1632"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1632,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 438,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 439,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name c0"]} +{"step" : 439,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 439,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 439,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 439,"kind" : ["Info"],"goal_id" : 1629,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1633"]} +{"step" : 439,"kind" : ["Info"],"goal_id" : 1633,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = c0"]} +{"step" : 440,"kind" : ["Info"],"goal_id" : 1633,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = c0"]} +{"step" : 440,"kind" : ["Info"],"goal_id" : 1633,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 440,"kind" : ["Info"],"goal_id" : 1633,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 440,"kind" : ["Info"],"goal_id" : 1633,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 441,"kind" : ["Info"],"goal_id" : 1630,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 441,"kind" : ["Info"],"goal_id" : 1630,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 441,"kind" : ["Info"],"goal_id" : 1630,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 442,"kind" : ["Info"],"goal_id" : 1631,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = X184^2"]} +{"step" : 442,"kind" : ["Info"],"goal_id" : 1631,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 442,"kind" : ["Info"],"goal_id" : 1631,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 442,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X184 c0 c1 := c0"]} +{"step" : 442,"kind" : ["Info"],"goal_id" : 1631,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 443,"kind" : ["Info"],"goal_id" : 1632,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 443,"kind" : ["Info"],"goal_id" : 1632,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 443,"kind" : ["Info"],"goal_id" : 1632,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1619,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","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"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1619,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1619,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1619,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy-pack-holes c0"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X185^2 := [X191^2 | X192^2]"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1619,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1634"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1634,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy-pack-holes c0 \n (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) X191^2"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1634,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1635"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1635,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n (copy-pack-holes c0) X192^2"]} +{"step" : 444,"kind" : ["Info"],"goal_id" : 1634,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1634,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy-pack-holes","copy-pack-holes c0 \n (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) X191^2"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1634,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1634,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1634,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:","(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2)."]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X191^2"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1634,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1636"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall-local-canonical X193^2"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1637"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1637,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.copy-clauses-for-unfold X193^2 X194^2"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1638"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1638,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["[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"]} +{"step" : 445,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall-local-canonical","findall-local-canonical X193^2"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:","(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0)."]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X193^2"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1636,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1639"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1639,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.findall (local-canonical X196^2) X197^2"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1639,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1640"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1640,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map X197^2 local-canonical-gref X193^2"]} +{"step" : 446,"kind" : ["Info"],"goal_id" : 1639,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 1639,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.findall","std.findall (local-canonical X196^2) X197^2"]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 1639,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 1639,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:"]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 1639,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:","(std.findall A0 A1) :- (findall_solutions A0 A1)."]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := local-canonical X196^2"]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X197^2"]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 1639,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1641"]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 1641,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall_solutions (local-canonical X196^2) X197^2"]} +{"step" : 447,"kind" : ["Info"],"goal_id" : 1641,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 448,"kind" : ["Info"],"goal_id" : 1641,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall_solutions","findall_solutions (local-canonical X196^2) X197^2"]} +{"step" : 448,"kind" : ["Info"],"goal_id" : 1641,"runtime_id" : 8,"name" : "user:rule","payload" : ["findall"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 1643,"runtime_id" : 12,"name" : "user:newgoal","payload" : ["local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1643,"runtime_id" : 12,"name" : "user:curgoal","payload" : ["local-canonical","local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1643,"runtime_id" : 12,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1643,"runtime_id" : 12,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1643,"runtime_id" : 12,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 448,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X197^2 := []"]} +{"step" : 448,"kind" : ["Info"],"goal_id" : 1641,"runtime_id" : 8,"name" : "user:rule:findall","payload" : ["success"]} +{"step" : 449,"kind" : ["Info"],"goal_id" : 1640,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] local-canonical-gref X193^2"]} +{"step" : 449,"kind" : ["Info"],"goal_id" : 1640,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 449,"kind" : ["Info"],"goal_id" : 1640,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 449,"kind" : ["Info"],"goal_id" : 1640,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 449,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X193^2 := []"]} +{"step" : 449,"kind" : ["Info"],"goal_id" : 1640,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 450,"kind" : ["Info"],"goal_id" : 1637,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.copy-clauses-for-unfold","coq.copy-clauses-for-unfold [] X194^2"]} +{"step" : 450,"kind" : ["Info"],"goal_id" : 1637,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 450,"kind" : ["Info"],"goal_id" : 1637,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:"]} +{"step" : 450,"kind" : ["Info"],"goal_id" : 1637,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:","(coq.copy-clauses-for-unfold [] []) :- ."]} +{"step" : 450,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X194^2 := []"]} +{"step" : 450,"kind" : ["Info"],"goal_id" : 1637,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 451,"kind" : ["Info"],"goal_id" : 1638,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","[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"]} +{"step" : 451,"kind" : ["Info"],"goal_id" : 1638,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 451,"kind" : ["Info"],"goal_id" : 1638,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1644"]} +{"step" : 451,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2"]} +{"step" : 451,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:451)\", line 1, column 0, character 0:","File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:451)\", line 1, column 0, character 0:","(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)."]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A5 := const «Builders_18.HB_unnamed_factory_20»"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [c0, c1]"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X191^2 := app [global (const «Builders_18.HB_unnamed_factory_20») | X198^2]"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1645"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["pack? (const «Builders_18.HB_unnamed_factory_20») _"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1646"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1646,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1647"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1647,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.rev [c0, c1] [X199^2, c0 | X200^2]"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1648"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1648,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c0 X195^2"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1649"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1649,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map X200^2 copy X201^2"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1650"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1650,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.rev [global (const «elpi.hole»), X195^2 | X201^2] X198^2"]} +{"step" : 452,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 453,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["pack?","pack? (const «Builders_18.HB_unnamed_factory_20») _"]} +{"step" : 453,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 453,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 453,"kind" : ["Info"],"goal_id" : 1645,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X191^2"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1651"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1])"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1652"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1652,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1653"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1653,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1] = X191^2"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1654"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1654,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 454,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 455,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1])"]} +{"step" : 455,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 455,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 455,"kind" : ["Info"],"goal_id" : 1651,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:","(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1)."]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X191^2 := app X202^2"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1644,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1655"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1655,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1655,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1656"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1656,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1] copy \n X202^2"]} +{"step" : 456,"kind" : ["Info"],"goal_id" : 1655,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 457,"kind" : ["Info"],"goal_id" : 1655,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 457,"kind" : ["Info"],"goal_id" : 1655,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 457,"kind" : ["Info"],"goal_id" : 1655,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1656,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1] copy \n X202^2"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1656,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1656,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1656,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (const «Builders_18.HB_unnamed_factory_20»)"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [c0, c1]"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X202^2 := [X203^2 | X204^2]"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1656,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1657"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy (global (const «Builders_18.HB_unnamed_factory_20»)) X203^2"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1658"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1658,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [c0, c1] copy X204^2"]} +{"step" : 458,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (global (const «Builders_18.HB_unnamed_factory_20»)) X203^2"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (const «Builders_18.HB_unnamed_factory_20»)"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X203^2"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1659"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name (global (const «Builders_18.HB_unnamed_factory_20»))"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1660"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1660,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1661"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1661,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["global (const «Builders_18.HB_unnamed_factory_20») = X203^2"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1662"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1662,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 459,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 460,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name (global (const «Builders_18.HB_unnamed_factory_20»))"]} +{"step" : 460,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 460,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 460,"kind" : ["Info"],"goal_id" : 1659,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (global (const «Builders_18.HB_unnamed_factory_20»)) X203^2"]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:"]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:","(copy (as (global _) A0) A0) :- (!)."]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (const «Builders_18.HB_unnamed_factory_20»)"]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X203^2 := global (const «Builders_18.HB_unnamed_factory_20»)"]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 1657,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1663"]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 1663,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 461,"kind" : ["Info"],"goal_id" : 1663,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 462,"kind" : ["Info"],"goal_id" : 1663,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 462,"kind" : ["Info"],"goal_id" : 1663,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 462,"kind" : ["Info"],"goal_id" : 1663,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1658,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [c0, c1] copy X204^2"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1658,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1658,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1658,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [c1]"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X204^2 := [X205^2 | X206^2]"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1658,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1664"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1664,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c0 X205^2"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1664,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1665"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1665,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [c1] copy X206^2"]} +{"step" : 463,"kind" : ["Info"],"goal_id" : 1664,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1664,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy c0 X205^2"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1664,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1664,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1664,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X205^2"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1664,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1666"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name c0"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1667"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1667,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1668"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1668,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = X205^2"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1669"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1669,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 464,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 465,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name c0"]} +{"step" : 465,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 465,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 465,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 465,"kind" : ["Info"],"goal_id" : 1666,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1670"]} +{"step" : 465,"kind" : ["Info"],"goal_id" : 1670,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = c0"]} +{"step" : 466,"kind" : ["Info"],"goal_id" : 1670,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = c0"]} +{"step" : 466,"kind" : ["Info"],"goal_id" : 1670,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 466,"kind" : ["Info"],"goal_id" : 1670,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 466,"kind" : ["Info"],"goal_id" : 1670,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 467,"kind" : ["Info"],"goal_id" : 1667,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 467,"kind" : ["Info"],"goal_id" : 1667,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 467,"kind" : ["Info"],"goal_id" : 1667,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 468,"kind" : ["Info"],"goal_id" : 1668,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = X205^2"]} +{"step" : 468,"kind" : ["Info"],"goal_id" : 1668,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 468,"kind" : ["Info"],"goal_id" : 1668,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 468,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X205 c0 c1 := c0"]} +{"step" : 468,"kind" : ["Info"],"goal_id" : 1668,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 469,"kind" : ["Info"],"goal_id" : 1669,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 469,"kind" : ["Info"],"goal_id" : 1669,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 469,"kind" : ["Info"],"goal_id" : 1669,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1665,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [c1] copy X206^2"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1665,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1665,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1665,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c1"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X206^2 := [X207^2 | X208^2]"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1665,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1671"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1671,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c1 X207^2"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1671,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1672"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1672,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [] copy X208^2"]} +{"step" : 470,"kind" : ["Info"],"goal_id" : 1671,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1671,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy c1 X207^2"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1671,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1671,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1671,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c1"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X207^2"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1671,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1673"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name c1"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1674"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1674,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1675"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1675,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c1 = X207^2"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1676"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1676,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 471,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 472,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name c1"]} +{"step" : 472,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 472,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 472,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 472,"kind" : ["Info"],"goal_id" : 1673,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1677"]} +{"step" : 472,"kind" : ["Info"],"goal_id" : 1677,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c1 = c1"]} +{"step" : 473,"kind" : ["Info"],"goal_id" : 1677,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c1 = c1"]} +{"step" : 473,"kind" : ["Info"],"goal_id" : 1677,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 473,"kind" : ["Info"],"goal_id" : 1677,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 473,"kind" : ["Info"],"goal_id" : 1677,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 474,"kind" : ["Info"],"goal_id" : 1674,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 474,"kind" : ["Info"],"goal_id" : 1674,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 474,"kind" : ["Info"],"goal_id" : 1674,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 475,"kind" : ["Info"],"goal_id" : 1675,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c1 = X207^2"]} +{"step" : 475,"kind" : ["Info"],"goal_id" : 1675,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 475,"kind" : ["Info"],"goal_id" : 1675,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 475,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X207 c0 c1 := c1"]} +{"step" : 475,"kind" : ["Info"],"goal_id" : 1675,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 476,"kind" : ["Info"],"goal_id" : 1676,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 476,"kind" : ["Info"],"goal_id" : 1676,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 476,"kind" : ["Info"],"goal_id" : 1676,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 477,"kind" : ["Info"],"goal_id" : 1672,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] copy X208^2"]} +{"step" : 477,"kind" : ["Info"],"goal_id" : 1672,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 477,"kind" : ["Info"],"goal_id" : 1672,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 477,"kind" : ["Info"],"goal_id" : 1672,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 477,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X208^2 := []"]} +{"step" : 477,"kind" : ["Info"],"goal_id" : 1672,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1635,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n (copy-pack-holes c0) X192^2"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1635,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1635,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1635,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy-pack-holes c0"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X192^2 := [X209^2 | X210^2]"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1635,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1678"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1678,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy-pack-holes c0 \n (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) X209^2"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1678,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1679"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1679,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [] (copy-pack-holes c0) X210^2"]} +{"step" : 478,"kind" : ["Info"],"goal_id" : 1678,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1678,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy-pack-holes","copy-pack-holes c0 \n (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) X209^2"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1678,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1678,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1678,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:","(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2)."]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X209^2"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1678,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1680"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall-local-canonical X211^2"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1681"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1681,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.copy-clauses-for-unfold X211^2 X212^2"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1682"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1682,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["[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"]} +{"step" : 479,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall-local-canonical","findall-local-canonical X211^2"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:","(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0)."]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X211^2"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1680,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1683"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1683,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.findall (local-canonical X214^2) X215^2"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1683,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1684"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1684,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map X215^2 local-canonical-gref X211^2"]} +{"step" : 480,"kind" : ["Info"],"goal_id" : 1683,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 1683,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.findall","std.findall (local-canonical X214^2) X215^2"]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 1683,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 1683,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:"]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 1683,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:","(std.findall A0 A1) :- (findall_solutions A0 A1)."]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := local-canonical X214^2"]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X215^2"]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 1683,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1685"]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 1685,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall_solutions (local-canonical X214^2) X215^2"]} +{"step" : 481,"kind" : ["Info"],"goal_id" : 1685,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 482,"kind" : ["Info"],"goal_id" : 1685,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall_solutions","findall_solutions (local-canonical X214^2) X215^2"]} +{"step" : 482,"kind" : ["Info"],"goal_id" : 1685,"runtime_id" : 8,"name" : "user:rule","payload" : ["findall"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 1687,"runtime_id" : 13,"name" : "user:newgoal","payload" : ["local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1687,"runtime_id" : 13,"name" : "user:curgoal","payload" : ["local-canonical","local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1687,"runtime_id" : 13,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1687,"runtime_id" : 13,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1687,"runtime_id" : 13,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 482,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X215^2 := []"]} +{"step" : 482,"kind" : ["Info"],"goal_id" : 1685,"runtime_id" : 8,"name" : "user:rule:findall","payload" : ["success"]} +{"step" : 483,"kind" : ["Info"],"goal_id" : 1684,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] local-canonical-gref X211^2"]} +{"step" : 483,"kind" : ["Info"],"goal_id" : 1684,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 483,"kind" : ["Info"],"goal_id" : 1684,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 483,"kind" : ["Info"],"goal_id" : 1684,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 483,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X211^2 := []"]} +{"step" : 483,"kind" : ["Info"],"goal_id" : 1684,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 484,"kind" : ["Info"],"goal_id" : 1681,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.copy-clauses-for-unfold","coq.copy-clauses-for-unfold [] X212^2"]} +{"step" : 484,"kind" : ["Info"],"goal_id" : 1681,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 484,"kind" : ["Info"],"goal_id" : 1681,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:"]} +{"step" : 484,"kind" : ["Info"],"goal_id" : 1681,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:","(coq.copy-clauses-for-unfold [] []) :- ."]} +{"step" : 484,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X212^2 := []"]} +{"step" : 484,"kind" : ["Info"],"goal_id" : 1681,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 485,"kind" : ["Info"],"goal_id" : 1682,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","[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"]} +{"step" : 485,"kind" : ["Info"],"goal_id" : 1682,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 485,"kind" : ["Info"],"goal_id" : 1682,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1688"]} +{"step" : 485,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2"]} +{"step" : 485,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:485)\", line 1, column 0, character 0:","File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:485)\", line 1, column 0, character 0:","(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)."]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A5 := const «Builders_18.HB_unnamed_factory_22»"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [c0, c1]"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X209^2 := app [global (const «Builders_18.HB_unnamed_factory_22») | X216^2]"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1689"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["pack? (const «Builders_18.HB_unnamed_factory_22») _"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1690"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1690,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1691"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1691,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.rev [c0, c1] [X217^2, c0 | X218^2]"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1692"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1692,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c0 X213^2"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1693"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1693,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map X218^2 copy X219^2"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1694"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1694,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.rev [global (const «elpi.hole»), X213^2 | X219^2] X216^2"]} +{"step" : 486,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 487,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["pack?","pack? (const «Builders_18.HB_unnamed_factory_22») _"]} +{"step" : 487,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 487,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 487,"kind" : ["Info"],"goal_id" : 1689,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X209^2"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1695"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1])"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1696"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1696,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1697"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1697,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1] = X209^2"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1698"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1698,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 488,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 489,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1])"]} +{"step" : 489,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 489,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 489,"kind" : ["Info"],"goal_id" : 1695,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:","(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1)."]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X209^2 := app X220^2"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1688,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1699"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1699,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1699,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1700"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1700,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1] copy \n X220^2"]} +{"step" : 490,"kind" : ["Info"],"goal_id" : 1699,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 491,"kind" : ["Info"],"goal_id" : 1699,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 491,"kind" : ["Info"],"goal_id" : 1699,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 491,"kind" : ["Info"],"goal_id" : 1699,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1700,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1] copy \n X220^2"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1700,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1700,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1700,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [c0, c1]"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X220^2 := [X221^2 | X222^2]"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1700,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1701"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy (global (const «Builders_18.HB_unnamed_factory_22»)) X221^2"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1702"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1702,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [c0, c1] copy X222^2"]} +{"step" : 492,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (global (const «Builders_18.HB_unnamed_factory_22»)) X221^2"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X221^2"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1703"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name (global (const «Builders_18.HB_unnamed_factory_22»))"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1704"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1704,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1705"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1705,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["global (const «Builders_18.HB_unnamed_factory_22») = X221^2"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1706"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1706,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 493,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 494,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name (global (const «Builders_18.HB_unnamed_factory_22»))"]} +{"step" : 494,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 494,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 494,"kind" : ["Info"],"goal_id" : 1703,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy (global (const «Builders_18.HB_unnamed_factory_22»)) X221^2"]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:"]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:","(copy (as (global _) A0) A0) :- (!)."]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X221^2 := global (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 1701,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1707"]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 1707,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 495,"kind" : ["Info"],"goal_id" : 1707,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 496,"kind" : ["Info"],"goal_id" : 1707,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 496,"kind" : ["Info"],"goal_id" : 1707,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 496,"kind" : ["Info"],"goal_id" : 1707,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1702,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [c0, c1] copy X222^2"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1702,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1702,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1702,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [c1]"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X222^2 := [X223^2 | X224^2]"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1702,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1708"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1708,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c0 X223^2"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1708,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1709"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1709,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [c1] copy X224^2"]} +{"step" : 497,"kind" : ["Info"],"goal_id" : 1708,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1708,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy c0 X223^2"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1708,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1708,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1708,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X223^2"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1708,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1710"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name c0"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1711"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1711,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1712"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1712,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = X223^2"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1713"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1713,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 498,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 499,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name c0"]} +{"step" : 499,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 499,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 499,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 499,"kind" : ["Info"],"goal_id" : 1710,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1714"]} +{"step" : 499,"kind" : ["Info"],"goal_id" : 1714,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = c0"]} +{"step" : 500,"kind" : ["Info"],"goal_id" : 1714,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = c0"]} +{"step" : 500,"kind" : ["Info"],"goal_id" : 1714,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 500,"kind" : ["Info"],"goal_id" : 1714,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 500,"kind" : ["Info"],"goal_id" : 1714,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 501,"kind" : ["Info"],"goal_id" : 1711,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 501,"kind" : ["Info"],"goal_id" : 1711,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 501,"kind" : ["Info"],"goal_id" : 1711,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 502,"kind" : ["Info"],"goal_id" : 1712,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = X223^2"]} +{"step" : 502,"kind" : ["Info"],"goal_id" : 1712,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 502,"kind" : ["Info"],"goal_id" : 1712,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 502,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X223 c0 c1 := c0"]} +{"step" : 502,"kind" : ["Info"],"goal_id" : 1712,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 503,"kind" : ["Info"],"goal_id" : 1713,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 503,"kind" : ["Info"],"goal_id" : 1713,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 503,"kind" : ["Info"],"goal_id" : 1713,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1709,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [c1] copy X224^2"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1709,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1709,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1709,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c1"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X224^2 := [X225^2 | X226^2]"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1709,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1715"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1715,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c1 X225^2"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1715,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1716"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1716,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [] copy X226^2"]} +{"step" : 504,"kind" : ["Info"],"goal_id" : 1715,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1715,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy c1 X225^2"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1715,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1715,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1715,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c1"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X225^2"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1715,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1717"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name c1"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1718"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1718,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1719"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1719,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c1 = X225^2"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1720"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1720,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 505,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 506,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name c1"]} +{"step" : 506,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 506,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 506,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 506,"kind" : ["Info"],"goal_id" : 1717,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1721"]} +{"step" : 506,"kind" : ["Info"],"goal_id" : 1721,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c1 = c1"]} +{"step" : 507,"kind" : ["Info"],"goal_id" : 1721,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c1 = c1"]} +{"step" : 507,"kind" : ["Info"],"goal_id" : 1721,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 507,"kind" : ["Info"],"goal_id" : 1721,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 507,"kind" : ["Info"],"goal_id" : 1721,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 508,"kind" : ["Info"],"goal_id" : 1718,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 508,"kind" : ["Info"],"goal_id" : 1718,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 508,"kind" : ["Info"],"goal_id" : 1718,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 509,"kind" : ["Info"],"goal_id" : 1719,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c1 = X225^2"]} +{"step" : 509,"kind" : ["Info"],"goal_id" : 1719,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 509,"kind" : ["Info"],"goal_id" : 1719,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 509,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X225 c0 c1 := c1"]} +{"step" : 509,"kind" : ["Info"],"goal_id" : 1719,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 510,"kind" : ["Info"],"goal_id" : 1720,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 510,"kind" : ["Info"],"goal_id" : 1720,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 510,"kind" : ["Info"],"goal_id" : 1720,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 511,"kind" : ["Info"],"goal_id" : 1716,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] copy X226^2"]} +{"step" : 511,"kind" : ["Info"],"goal_id" : 1716,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 511,"kind" : ["Info"],"goal_id" : 1716,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 511,"kind" : ["Info"],"goal_id" : 1716,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 511,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X226^2 := []"]} +{"step" : 511,"kind" : ["Info"],"goal_id" : 1716,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 512,"kind" : ["Info"],"goal_id" : 1679,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] (copy-pack-holes c0) X210^2"]} +{"step" : 512,"kind" : ["Info"],"goal_id" : 1679,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 512,"kind" : ["Info"],"goal_id" : 1679,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 512,"kind" : ["Info"],"goal_id" : 1679,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 512,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X210^2 := []"]} +{"step" : 512,"kind" : ["Info"],"goal_id" : 1679,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1613,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.spy","std.spy\n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1613,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1613,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 45, column 0, character 1682:","File \"builtin_stdlib.elpi\", line 49, column 0, character 1863:"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1613,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 45, column 0, character 1682:","(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0)."]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.take 0 \n [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"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1613,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1722"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["trace.counter run X227^2"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1723"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (not (X227^2 = 0)) (std.debug-print run= X227^2) true"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1724"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1724,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.debug-print ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1725"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1725,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] X175^1"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1726"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1726,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.debug-print ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)"]} +{"step" : 513,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 514,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["trace.counter","trace.counter run X227^2"]} +{"step" : 514,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 514,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["trace.counter"]} +{"step" : 514,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 514,"kind" : ["Info"],"goal_id" : 1722,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1727"]} +{"step" : 514,"kind" : ["Info"],"goal_id" : 1727,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X227^2 = 0"]} +{"step" : 515,"kind" : ["Info"],"goal_id" : 1727,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X227^2 = 0"]} +{"step" : 515,"kind" : ["Info"],"goal_id" : 1727,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 515,"kind" : ["Info"],"goal_id" : 1727,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 515,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X227^2 := 0"]} +{"step" : 515,"kind" : ["Info"],"goal_id" : 1727,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (not (0 = 0)) (std.debug-print run= 0) true"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := not (0 = 0)"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := std.debug-print run= 0"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1728"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["not (0 = 0)"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1729"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1729,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1730"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1730,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.debug-print run= 0"]} +{"step" : 516,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["not","not (0 = 0)"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 52, column 0, character 609:","File \"elpi-builtin.elpi\", line 54, column 0, character 631:"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 52, column 0, character 609:","(not A0) :- A0, (!), fail."]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := 0 = 0"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1728,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1731"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1731,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["0 = 0"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1731,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1732"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1732,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1731,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1733"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1733,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["fail"]} +{"step" : 517,"kind" : ["Info"],"goal_id" : 1731,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 518,"kind" : ["Info"],"goal_id" : 1731,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","0 = 0"]} +{"step" : 518,"kind" : ["Info"],"goal_id" : 1731,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 518,"kind" : ["Info"],"goal_id" : 1731,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 518,"kind" : ["Info"],"goal_id" : 1731,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 519,"kind" : ["Info"],"goal_id" : 1732,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 519,"kind" : ["Info"],"goal_id" : 1732,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 519,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1728","File \"elpi-builtin.elpi\", line 54, column 0, character 631:","(not _) :- ."]} +{"step" : 519,"kind" : ["Info"],"goal_id" : 1732,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 520,"kind" : ["Info"],"goal_id" : 1733,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["fail","fail"]} +{"step" : 520,"kind" : ["Info"],"goal_id" : 1733,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 520,"kind" : ["Info"],"goal_id" : 1733,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 520,"kind" : ["Info"],"goal_id" : 1733,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 521,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (not (0 = 0)) (std.debug-print run= 0) true"]} +{"step" : 521,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 521,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 521,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 521,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 521,"kind" : ["Info"],"goal_id" : 1723,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1734"]} +{"step" : 521,"kind" : ["Info"],"goal_id" : 1734,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 521,"kind" : ["Info"],"goal_id" : 1734,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 522,"kind" : ["Info"],"goal_id" : 1734,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 522,"kind" : ["Info"],"goal_id" : 1734,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 522,"kind" : ["Info"],"goal_id" : 1734,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 522,"kind" : ["Info"],"goal_id" : 1734,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 522,"kind" : ["Info"],"goal_id" : 1734,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1724,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.debug-print","std.debug-print ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1724,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1724,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 17, column 0, character 660:","File \"builtin_stdlib.elpi\", line 24, column 0, character 874:"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1724,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 17, column 0, character 660:","(std.debug-print A0 A1) :- (!), (coq.say A0 A1)."]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ----<<---- enter: "]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := std.take 0 \n [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"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1724,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1735"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1735,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1735,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1736"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1736,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.say ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)"]} +{"step" : 523,"kind" : ["Info"],"goal_id" : 1735,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 524,"kind" : ["Info"],"goal_id" : 1735,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 524,"kind" : ["Info"],"goal_id" : 1735,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 524,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1724","File \"builtin_stdlib.elpi\", line 24, column 0, character 874:","(std.debug-print A0 A1) :- (print A0 A1)."]} +{"step" : 524,"kind" : ["Info"],"goal_id" : 1735,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 525,"kind" : ["Info"],"goal_id" : 1736,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.say","coq.say ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)"]} +{"step" : 525,"kind" : ["Info"],"goal_id" : 1736,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 525,"kind" : ["Info"],"goal_id" : 1736,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.say"]} +{"step" : 525,"kind" : ["Info"],"goal_id" : 1736,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 526,"kind" : ["Info"],"goal_id" : 1725,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.take","std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] X175^1"]} +{"step" : 526,"kind" : ["Info"],"goal_id" : 1725,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 526,"kind" : ["Info"],"goal_id" : 1725,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 88, column 0, character 2914:","File \"builtin_stdlib.elpi\", line 89, column 0, character 2932:","File \"builtin_stdlib.elpi\", line 90, column 0, character 2985:"]} +{"step" : 526,"kind" : ["Info"],"goal_id" : 1725,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 88, column 0, character 2914:","(std.take 0 _ []) :- (!)."]} +{"step" : 526,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X175^1 := []"]} +{"step" : 526,"kind" : ["Info"],"goal_id" : 1725,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1737"]} +{"step" : 526,"kind" : ["Info"],"goal_id" : 1737,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 526,"kind" : ["Info"],"goal_id" : 1737,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 527,"kind" : ["Info"],"goal_id" : 1737,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 527,"kind" : ["Info"],"goal_id" : 1737,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 527,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1725","File \"builtin_stdlib.elpi\", line 89, column 0, character 2932:","(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3)."]} +{"step" : 527,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1725","File \"builtin_stdlib.elpi\", line 90, column 0, character 2985:","(std.take _ _ _) :- (std.fatal-error take run out of list items)."]} +{"step" : 527,"kind" : ["Info"],"goal_id" : 1737,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1726,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.debug-print","std.debug-print ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] [])"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1726,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1726,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 17, column 0, character 660:","File \"builtin_stdlib.elpi\", line 24, column 0, character 874:"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1726,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 17, column 0, character 660:","(std.debug-print A0 A1) :- (!), (coq.say A0 A1)."]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ---->>---- exit: "]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := std.take 0 \n [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 []"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1726,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1738"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1738,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1738,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1739"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1739,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.say ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] [])"]} +{"step" : 528,"kind" : ["Info"],"goal_id" : 1738,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 529,"kind" : ["Info"],"goal_id" : 1738,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 529,"kind" : ["Info"],"goal_id" : 1738,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 529,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1726","File \"builtin_stdlib.elpi\", line 24, column 0, character 874:","(std.debug-print A0 A1) :- (print A0 A1)."]} +{"step" : 529,"kind" : ["Info"],"goal_id" : 1738,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 530,"kind" : ["Info"],"goal_id" : 1739,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.say","coq.say ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] [])"]} +{"step" : 530,"kind" : ["Info"],"goal_id" : 1739,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 530,"kind" : ["Info"],"goal_id" : 1739,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.say"]} +{"step" : 530,"kind" : ["Info"],"goal_id" : 1739,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 531,"kind" : ["Info"],"goal_id" : 1603,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 531,"kind" : ["Info"],"goal_id" : 1603,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 531,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1613","File \"builtin_stdlib.elpi\", line 49, column 0, character 1863:","(std.spy A0) :- (std.debug-print ---->>---- fail: A0), fail."]} +{"step" : 531,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1611","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «SelfA.axioms_») 0) :- ."]} +{"step" : 531,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1611","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «IsSelfA'.axioms_») 0) :- ."]} +{"step" : 531,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1602","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 531,"kind" : ["Info"],"goal_id" : 1603,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 532,"kind" : ["Info"],"goal_id" : 1600,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 532,"kind" : ["Info"],"goal_id" : 1600,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 532,"kind" : ["Info"],"goal_id" : 1600,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 533,"kind" : ["Info"],"goal_id" : 1601,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do! []"]} +{"step" : 533,"kind" : ["Info"],"goal_id" : 1601,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 533,"kind" : ["Info"],"goal_id" : 1601,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 255, column 0, character 8595:"]} +{"step" : 533,"kind" : ["Info"],"goal_id" : 1601,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 255, column 0, character 8595:","(std.do! []) :- ."]} +{"step" : 533,"kind" : ["Info"],"goal_id" : 1601,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1578,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map2","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"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1578,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1578,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 141, column 0, character 4745:"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1578,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 141, column 0, character 4745:","(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6)."]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [global (const «Builders_18.HB_unnamed_factory_20»)]"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := indt «HasB.axioms_»"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := [indt «HasA.axioms_»]"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A4 := factory-provides.one [] c0"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X174^1 := [X228^1 | X229^1]"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1578,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1740"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1740,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_22»)) \n (indt «HasB.axioms_») X228^1"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1740,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1741"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1741,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map2 [global (const «Builders_18.HB_unnamed_factory_20»)] \n [indt «HasA.axioms_»] (factory-provides.one [] c0) X229^1"]} +{"step" : 534,"kind" : ["Info"],"goal_id" : 1740,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 1740,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-provides.one","factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_22»)) \n (indt «HasB.axioms_») X228^1"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 1740,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 1740,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 108, column 0, character 3601:"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 1740,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 108, column 0, character 3601:","(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins])."]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := c0"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := global (const «Builders_18.HB_unnamed_factory_22»)"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := indt «HasB.axioms_»"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X228^1 := triple (indt «HasB.axioms_») X230^1 c0"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 1740,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1742"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 1742,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) \n X231^1) Builder illtyped, \n (coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]"]} +{"step" : 535,"kind" : ["Info"],"goal_id" : 1742,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1742,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) \n X231^1) Builder illtyped, \n (coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1742,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1742,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1742,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) \n X231^1) Builder illtyped"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [(coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1742,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1743"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1) \n Builder illtyped"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1744"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1744,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1745"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1745,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [(coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]"]} +{"step" : 536,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert-ok!","std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1) \n Builder illtyped"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 40, column 0, character 1406:","(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!)."]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) \n X231^1"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := Builder illtyped"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1743,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1746"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1 \n X234^1"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1747"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1747,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1748"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1748,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X234^1 = ok ;\n X234^1 = error X235^1 , std.fatal-error-w-data Builder illtyped X235^1"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1749"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1749,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 537,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 538,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.typecheck","coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1 \n X234^1"]} +{"step" : 538,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 538,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.typecheck"]} +{"step" : 538,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 538,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1750"]} +{"step" : 538,"kind" : ["Info"],"goal_id" : 1750,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X231^1 =\n prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]"]} +{"step" : 538,"kind" : ["Info"],"goal_id" : 1746,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1751"]} +{"step" : 538,"kind" : ["Info"],"goal_id" : 1751,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X234^1 = ok"]} +{"step" : 539,"kind" : ["Info"],"goal_id" : 1750,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X231^1 =\n prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]"]} +{"step" : 539,"kind" : ["Info"],"goal_id" : 1750,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 539,"kind" : ["Info"],"goal_id" : 1750,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 539,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X231^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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]"]} +{"step" : 539,"kind" : ["Info"],"goal_id" : 1750,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 540,"kind" : ["Info"],"goal_id" : 1751,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X234^1 = ok"]} +{"step" : 540,"kind" : ["Info"],"goal_id" : 1751,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 540,"kind" : ["Info"],"goal_id" : 1751,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 540,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X234^1 := ok"]} +{"step" : 540,"kind" : ["Info"],"goal_id" : 1751,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 541,"kind" : ["Info"],"goal_id" : 1747,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 541,"kind" : ["Info"],"goal_id" : 1747,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 541,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1743","File \"builtin_stdlib.elpi\", line 41, column 0, character 1520:","(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned)."]} +{"step" : 541,"kind" : ["Info"],"goal_id" : 1747,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 542,"kind" : ["Info"],"goal_id" : 1748,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","ok = ok ; ok = error X235^1 , std.fatal-error-w-data Builder illtyped X235^1"]} +{"step" : 542,"kind" : ["Info"],"goal_id" : 1748,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 542,"kind" : ["Info"],"goal_id" : 1748,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 542,"kind" : ["Info"],"goal_id" : 1748,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 542,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ok = ok"]} +{"step" : 542,"kind" : ["Info"],"goal_id" : 1748,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1752"]} +{"step" : 542,"kind" : ["Info"],"goal_id" : 1752,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["ok = ok"]} +{"step" : 542,"kind" : ["Info"],"goal_id" : 1752,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 543,"kind" : ["Info"],"goal_id" : 1752,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","ok = ok"]} +{"step" : 543,"kind" : ["Info"],"goal_id" : 1752,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 543,"kind" : ["Info"],"goal_id" : 1752,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 543,"kind" : ["Info"],"goal_id" : 1752,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 544,"kind" : ["Info"],"goal_id" : 1749,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 544,"kind" : ["Info"],"goal_id" : 1749,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 544,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1748","File \"elpi-builtin.elpi\", line 30, column 0, character 311:","(_ ; A0) :- A0."]} +{"step" : 544,"kind" : ["Info"],"goal_id" : 1749,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 545,"kind" : ["Info"],"goal_id" : 1744,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 545,"kind" : ["Info"],"goal_id" : 1744,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 545,"kind" : ["Info"],"goal_id" : 1744,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1745,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do!\n [(coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c1]) c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1745,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1745,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1745,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1745,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1753"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1754"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1754,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1755"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1755,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do!\n [std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]"]} +{"step" : 546,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 547,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:curgoal","payload" : [",","coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1"]} +{"step" : 547,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:rule","payload" : ["and"]} +{"step" : 547,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1756"]} +{"step" : 547,"kind" : ["Info"],"goal_id" : 1756,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1"]} +{"step" : 547,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1757"]} +{"step" : 547,"kind" : ["Info"],"goal_id" : 1757,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.subst-prod [c0] X232^1 X233^1"]} +{"step" : 547,"kind" : ["Info"],"goal_id" : 1753,"runtime_id" : 8,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 1756,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.subst-prod","coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1"]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 1756,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 1756,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 36, column 0, character 1340:","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:"]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 1756,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 36, column 0, character 1340:","(coq.subst-prod [] A0 A0) :- (!)."]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]"]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X232^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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]"]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 1756,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1758"]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 1758,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 548,"kind" : ["Info"],"goal_id" : 1758,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 549,"kind" : ["Info"],"goal_id" : 1758,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 549,"kind" : ["Info"],"goal_id" : 1758,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 549,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1756","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:","(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3)."]} +{"step" : 549,"kind" : ["Info"],"goal_id" : 1758,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1757,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.subst-prod","coq.subst-prod [c0] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X233^1"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1757,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1757,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 37, column 0, character 1368:","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:","File \"/build/source/./elpi/coq-lib.elpi\", line 39, column 0, character 1505:"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1757,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 37, column 0, character 1368:","(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3)."]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c1 \\\nprod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X233^1"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1757,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1759"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1759,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1759,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1760"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1760,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X233^1"]} +{"step" : 550,"kind" : ["Info"],"goal_id" : 1759,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 551,"kind" : ["Info"],"goal_id" : 1759,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 551,"kind" : ["Info"],"goal_id" : 1759,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 551,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1757","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:","(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3)."]} +{"step" : 551,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1757","File \"/build/source/./elpi/coq-lib.elpi\", line 39, column 0, character 1505:","(coq.subst-prod [_ | _] A0 _) :- (!), \n (std.fatal-error-w-data subst-prod: not a product A0)."]} +{"step" : 551,"kind" : ["Info"],"goal_id" : 1759,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 1760,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.subst-prod","coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X233^1"]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 1760,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 1760,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 36, column 0, character 1340:","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:"]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 1760,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 36, column 0, character 1340:","(coq.subst-prod [] A0 A0) :- (!)."]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]"]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X233^1 := prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]"]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 1760,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1761"]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 1761,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 552,"kind" : ["Info"],"goal_id" : 1761,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 553,"kind" : ["Info"],"goal_id" : 1761,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 553,"kind" : ["Info"],"goal_id" : 1761,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 553,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1760","File \"/build/source/./elpi/coq-lib.elpi\", line 38, column 0, character 1438:","(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3)."]} +{"step" : 553,"kind" : ["Info"],"goal_id" : 1761,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 554,"kind" : ["Info"],"goal_id" : 1754,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 554,"kind" : ["Info"],"goal_id" : 1754,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 554,"kind" : ["Info"],"goal_id" : 1754,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1755,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.do!","std.do!\n [std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1755,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1755,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1755,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 256, column 0, character 8603:","(std.do! [A0 | A1]) :- A0, (!), (std.do! A1)."]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["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 «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1755,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1762"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1763"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1763,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1764"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1764,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.do! []"]} +{"step" : 555,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.assert!","std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 35, column 0, character 1155:"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 35, column 0, character 1155:","(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!)."]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := The conclusion of a builder is a mixin whose parameters depend on other mixins"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1762,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1765"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1765,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1 ;\n std.fatal-error-w-data\n The conclusion of a builder is a mixin whose parameters depend on other mixins \n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1)"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1765,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1766"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1766,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 556,"kind" : ["Info"],"goal_id" : 1765,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 557,"kind" : ["Info"],"goal_id" : 1765,"runtime_id" : 8,"name" : "user:curgoal","payload" : [";","extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1 ;\n std.fatal-error-w-data\n The conclusion of a builder is a mixin whose parameters depend on other mixins \n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1)"]} +{"step" : 557,"kind" : ["Info"],"goal_id" : 1765,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 557,"kind" : ["Info"],"goal_id" : 1765,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","File \"elpi-builtin.elpi\", line 30, column 0, character 311:"]} +{"step" : 557,"kind" : ["Info"],"goal_id" : 1765,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 28, column 0, character 296:","(A0 ; _) :- A0."]} +{"step" : 557,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 557,"kind" : ["Info"],"goal_id" : 1765,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1767"]} +{"step" : 557,"kind" : ["Info"],"goal_id" : 1767,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 557,"kind" : ["Info"],"goal_id" : 1767,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1767,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["extract-conclusion-params","extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1767,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1767,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 115, column 0, character 3974:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 117, column 0, character 4090:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 122, column 0, character 4303:"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1767,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 115, column 0, character 3974:","(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3)))."]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app [global (const «IsSelfA'.phant_axioms»), c0]"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := c1 \\\napp\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X230^1"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1767,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1768"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1768,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1768,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1769"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1769,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["pi c1 \\\n decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 558,"kind" : ["Info"],"goal_id" : 1768,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 559,"kind" : ["Info"],"goal_id" : 1768,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 559,"kind" : ["Info"],"goal_id" : 1768,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 559,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1767","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 117, column 0, character 4090:","(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))."]} +{"step" : 559,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1767","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 122, column 0, character 4303:","(extract-conclusion-params A0 A1 A2) :- (whd1 A1 A3), (!), \n (extract-conclusion-params A0 A3 A2)."]} +{"step" : 559,"kind" : ["Info"],"goal_id" : 1768,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 560,"kind" : ["Info"],"goal_id" : 1769,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["pi","pi c1 \\\n decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 560,"kind" : ["Info"],"goal_id" : 1769,"runtime_id" : 8,"name" : "user:rule","payload" : ["pi"]} +{"step" : 560,"kind" : ["Info"],"goal_id" : 1769,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1770"]} +{"step" : 560,"kind" : ["Info"],"goal_id" : 1770,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 560,"kind" : ["Info"],"goal_id" : 1770,"runtime_id" : 8,"name" : "user:rule:pi","payload" : ["success"]} +{"step" : 561,"kind" : ["Info"],"goal_id" : 1770,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 561,"kind" : ["Info"],"goal_id" : 1770,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 561,"kind" : ["Info"],"goal_id" : 1770,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1771"]} +{"step" : 561,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 561,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["extract-conclusion-params","extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 115, column 0, character 3974:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 117, column 0, character 4090:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 122, column 0, character 4303:"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 115, column 0, character 3974:","(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3)))."]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["match\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] with prod _ A1 A2"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 117, column 0, character 4090:","(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))."]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := indt «HasB.axioms_»"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := [app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A3 := X230^1"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1771,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1772"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1773"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-alias->gref (indt «HasB.axioms_») X236^2"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1774"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["factory-nparams X236^2 X237^2"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1775"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1775,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map\n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] (copy-pack-holes c0) X238^2"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1776"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1776,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.spy (std.take X237^2 X238^2 X230^1)"]} +{"step" : 562,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 563,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 563,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 563,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1771","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 122, column 0, character 4303:","(extract-conclusion-params A0 A1 A2) :- (whd1 A1 A3), (!), \n (extract-conclusion-params A0 A3 A2)."]} +{"step" : 563,"kind" : ["Info"],"goal_id" : 1772,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-alias->gref","factory-alias->gref (indt «HasB.axioms_») X236^2"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 74, column 0, character 2385:","File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 74, column 0, character 2385:","(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!)."]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «HasB.axioms_»"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X236^2"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1777"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev X236^2 (indt «HasB.axioms_») _"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1778"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1778,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 564,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev X236^2 (indt «HasB.axioms_») _"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indt «HasA.axioms_»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with const «HasA.phant_axioms»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- ."]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indc «HasA.Axioms_»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with const «HasA.phant_Build»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indt «HasB.axioms_»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with const «HasB.phant_axioms»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- ."]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indc «HasB.Axioms_»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with const «HasB.phant_Build»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indt «IsSelfA.axioms_»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with const «IsSelfA.phant_axioms»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- ."]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indc «IsSelfA.Axioms_»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with const «IsSelfA.phant_Build»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indt «IsSelfA'.axioms_»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with const «IsSelfA'.phant_axioms»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- ."]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indc «IsSelfA'.Axioms_»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with const «IsSelfA'.phant_Build»"]} +{"step" : 565,"kind" : ["Info"],"goal_id" : 1777,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-alias->gref","factory-alias->gref (indt «HasB.axioms_») X236^2"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 75, column 0, character 2443:","(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!)."]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := indt «HasB.axioms_»"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X236^2 := indt «HasB.axioms_»"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1773,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1779"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["phant-abbrev (indt «HasB.axioms_») _ _"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1780"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1780,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 566,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 567,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["phant-abbrev","phant-abbrev (indt «HasB.axioms_») _ _"]} +{"step" : 567,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 567,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 567,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- ."]} +{"step" : 567,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with indt «HasA.axioms_»"]} +{"step" : 567,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- ."]} +{"step" : 567,"kind" : ["Info"],"goal_id" : 1779,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 568,"kind" : ["Info"],"goal_id" : 1780,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 568,"kind" : ["Info"],"goal_id" : 1780,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 568,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1779","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- ."]} +{"step" : 568,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1779","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- ."]} +{"step" : 568,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1773","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «A.axioms_») (indt «A.axioms_»)) :- ."]} +{"step" : 568,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1773","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «B.axioms_») (indt «B.axioms_»)) :- ."]} +{"step" : 568,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1773","File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-alias->gref (indt «SelfA.axioms_») (indt «SelfA.axioms_»)) :- ."]} +{"step" : 568,"kind" : ["Info"],"goal_id" : 1780,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["factory-nparams","factory-nparams (indt «HasB.axioms_») X237^2"]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:","File \"(elpi.add_clause)\", line 1, column 0, character 0:"]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «HasA.axioms_») 1) :- ."]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with indt «HasA.axioms_»"]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «A.axioms_») 1) :- ."]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify indt «HasB.axioms_» with indt «A.axioms_»"]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(elpi.add_clause)\", line 1, column 0, character 0:","(factory-nparams (indt «HasB.axioms_») 1) :- ."]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X237^2 := 1"]} +{"step" : 569,"kind" : ["Info"],"goal_id" : 1774,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1775,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map\n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] (copy-pack-holes c0) X238^2"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1775,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1775,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1775,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [c0]"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy-pack-holes c0"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X238^2 := [X239^2 | X240^2]"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1775,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1781"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1781,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy-pack-holes c0 \n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1781,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1782"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1782,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [c0] (copy-pack-holes c0) X240^2"]} +{"step" : 570,"kind" : ["Info"],"goal_id" : 1781,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1781,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy-pack-holes","copy-pack-holes c0 \n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1781,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1781,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1781,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:","(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2)."]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X239^2"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1781,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1783"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall-local-canonical X241^2"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1784"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1784,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.copy-clauses-for-unfold X241^2 X242^2"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1785"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1785,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X243^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X243^2 | c6] c3) | X242^2]\n =>\n copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2"]} +{"step" : 571,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall-local-canonical","findall-local-canonical X241^2"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:","(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0)."]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X241^2"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1783,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1786"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1786,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.findall (local-canonical X244^2) X245^2"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1786,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1787"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1787,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map X245^2 local-canonical-gref X241^2"]} +{"step" : 572,"kind" : ["Info"],"goal_id" : 1786,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 1786,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.findall","std.findall (local-canonical X244^2) X245^2"]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 1786,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 1786,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:"]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 1786,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:","(std.findall A0 A1) :- (findall_solutions A0 A1)."]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := local-canonical X244^2"]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X245^2"]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 1786,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1788"]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 1788,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall_solutions (local-canonical X244^2) X245^2"]} +{"step" : 573,"kind" : ["Info"],"goal_id" : 1788,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 574,"kind" : ["Info"],"goal_id" : 1788,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall_solutions","findall_solutions (local-canonical X244^2) X245^2"]} +{"step" : 574,"kind" : ["Info"],"goal_id" : 1788,"runtime_id" : 8,"name" : "user:rule","payload" : ["findall"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 1790,"runtime_id" : 14,"name" : "user:newgoal","payload" : ["local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1790,"runtime_id" : 14,"name" : "user:curgoal","payload" : ["local-canonical","local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1790,"runtime_id" : 14,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1790,"runtime_id" : 14,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1790,"runtime_id" : 14,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 574,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X245^2 := []"]} +{"step" : 574,"kind" : ["Info"],"goal_id" : 1788,"runtime_id" : 8,"name" : "user:rule:findall","payload" : ["success"]} +{"step" : 575,"kind" : ["Info"],"goal_id" : 1787,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] local-canonical-gref X241^2"]} +{"step" : 575,"kind" : ["Info"],"goal_id" : 1787,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 575,"kind" : ["Info"],"goal_id" : 1787,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 575,"kind" : ["Info"],"goal_id" : 1787,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 575,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X241^2 := []"]} +{"step" : 575,"kind" : ["Info"],"goal_id" : 1787,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 576,"kind" : ["Info"],"goal_id" : 1784,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.copy-clauses-for-unfold","coq.copy-clauses-for-unfold [] X242^2"]} +{"step" : 576,"kind" : ["Info"],"goal_id" : 1784,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 576,"kind" : ["Info"],"goal_id" : 1784,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:"]} +{"step" : 576,"kind" : ["Info"],"goal_id" : 1784,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:","(coq.copy-clauses-for-unfold [] []) :- ."]} +{"step" : 576,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X242^2 := []"]} +{"step" : 576,"kind" : ["Info"],"goal_id" : 1784,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 577,"kind" : ["Info"],"goal_id" : 1785,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X243^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X243^2 | c6] c3)] =>\n copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2"]} +{"step" : 577,"kind" : ["Info"],"goal_id" : 1785,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 577,"kind" : ["Info"],"goal_id" : 1785,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1791"]} +{"step" : 577,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2"]} +{"step" : 577,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:577)\", line 1, column 0, character 0:","File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:577)\", line 1, column 0, character 0:","(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X243^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X243^2 | A4] A1)."]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A5 := const «Builders_18.Builders_18_T__canonical__interleave_context_A»"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [c0, c1]"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X239^2 := app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A») | X246^2]"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1792"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["pack? (const «Builders_18.Builders_18_T__canonical__interleave_context_A») \n _"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1793"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1793,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1794"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1794,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.rev [c0, c1] [X247^2, c0 | X248^2]"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1795"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1795,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c0 X243^2"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1796"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1796,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map X248^2 copy X249^2"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1797"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1797,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.rev [global (const «elpi.hole»), X243^2 | X249^2] X246^2"]} +{"step" : 578,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 579,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["pack?","pack? (const «Builders_18.Builders_18_T__canonical__interleave_context_A») \n _"]} +{"step" : 579,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 579,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 579,"kind" : ["Info"],"goal_id" : 1792,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X239^2"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1798"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1])"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1799"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1799,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1800"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1800,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1] = X239^2"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1801"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1801,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 580,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 581,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1])"]} +{"step" : 581,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 581,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 581,"kind" : ["Info"],"goal_id" : 1798,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 119, column 0, character 4703:","(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1)."]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X239^2 := app X250^2"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1791,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1802"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1802,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1802,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1803"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1803,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1] copy X250^2"]} +{"step" : 582,"kind" : ["Info"],"goal_id" : 1802,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 583,"kind" : ["Info"],"goal_id" : 1802,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 583,"kind" : ["Info"],"goal_id" : 1802,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 583,"kind" : ["Info"],"goal_id" : 1802,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1803,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1] copy X250^2"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1803,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1803,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1803,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [c0, c1]"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X250^2 := [X251^2 | X252^2]"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1803,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1804"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)) \n X251^2"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1805"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1805,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [c0, c1] copy X252^2"]} +{"step" : 584,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)) \n X251^2"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X251^2"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1806"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»))"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1807"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1807,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1808"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1808,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["global (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)\n = X251^2"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1809"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1809,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 585,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 586,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»))"]} +{"step" : 586,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 586,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 586,"kind" : ["Info"],"goal_id" : 1806,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["fail"]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)) \n X251^2"]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:"]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 111, column 0, character 4402:","(copy (as (global _) A0) A0) :- (!)."]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)"]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X251^2 := global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»)"]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 1804,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1810"]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 1810,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 587,"kind" : ["Info"],"goal_id" : 1810,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 588,"kind" : ["Info"],"goal_id" : 1810,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 588,"kind" : ["Info"],"goal_id" : 1810,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 588,"kind" : ["Info"],"goal_id" : 1810,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1805,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [c0, c1] copy X252^2"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1805,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1805,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1805,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := [c1]"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X252^2 := [X253^2 | X254^2]"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1805,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1811"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1811,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c0 X253^2"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1811,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1812"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1812,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [c1] copy X254^2"]} +{"step" : 589,"kind" : ["Info"],"goal_id" : 1811,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1811,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy c0 X253^2"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1811,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1811,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1811,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X253^2"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1811,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1813"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name c0"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1814"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1814,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1815"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1815,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = X253^2"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1816"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1816,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 590,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 591,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name c0"]} +{"step" : 591,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 591,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 591,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 591,"kind" : ["Info"],"goal_id" : 1813,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1817"]} +{"step" : 591,"kind" : ["Info"],"goal_id" : 1817,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = c0"]} +{"step" : 592,"kind" : ["Info"],"goal_id" : 1817,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = c0"]} +{"step" : 592,"kind" : ["Info"],"goal_id" : 1817,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 592,"kind" : ["Info"],"goal_id" : 1817,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 592,"kind" : ["Info"],"goal_id" : 1817,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 593,"kind" : ["Info"],"goal_id" : 1814,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 593,"kind" : ["Info"],"goal_id" : 1814,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 593,"kind" : ["Info"],"goal_id" : 1814,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 594,"kind" : ["Info"],"goal_id" : 1815,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = X253^2"]} +{"step" : 594,"kind" : ["Info"],"goal_id" : 1815,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 594,"kind" : ["Info"],"goal_id" : 1815,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 594,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X253 c0 c1 := c0"]} +{"step" : 594,"kind" : ["Info"],"goal_id" : 1815,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 595,"kind" : ["Info"],"goal_id" : 1816,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 595,"kind" : ["Info"],"goal_id" : 1816,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 595,"kind" : ["Info"],"goal_id" : 1816,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1812,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [c1] copy X254^2"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1812,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1812,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1812,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c1"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X254^2 := [X255^2 | X256^2]"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1812,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1818"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1818,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c1 X255^2"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1818,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1819"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1819,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [] copy X256^2"]} +{"step" : 596,"kind" : ["Info"],"goal_id" : 1818,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1818,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy c1 X255^2"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1818,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1818,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1818,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c1"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X255^2"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1818,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1820"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name c1"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1821"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1821,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1822"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1822,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c1 = X255^2"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1823"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1823,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 597,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 598,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name c1"]} +{"step" : 598,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 598,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 598,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 598,"kind" : ["Info"],"goal_id" : 1820,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1824"]} +{"step" : 598,"kind" : ["Info"],"goal_id" : 1824,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c1 = c1"]} +{"step" : 599,"kind" : ["Info"],"goal_id" : 1824,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c1 = c1"]} +{"step" : 599,"kind" : ["Info"],"goal_id" : 1824,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 599,"kind" : ["Info"],"goal_id" : 1824,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 599,"kind" : ["Info"],"goal_id" : 1824,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 600,"kind" : ["Info"],"goal_id" : 1821,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 600,"kind" : ["Info"],"goal_id" : 1821,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 600,"kind" : ["Info"],"goal_id" : 1821,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 601,"kind" : ["Info"],"goal_id" : 1822,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c1 = X255^2"]} +{"step" : 601,"kind" : ["Info"],"goal_id" : 1822,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 601,"kind" : ["Info"],"goal_id" : 1822,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 601,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X255 c0 c1 := c1"]} +{"step" : 601,"kind" : ["Info"],"goal_id" : 1822,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 602,"kind" : ["Info"],"goal_id" : 1823,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 602,"kind" : ["Info"],"goal_id" : 1823,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 602,"kind" : ["Info"],"goal_id" : 1823,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 603,"kind" : ["Info"],"goal_id" : 1819,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] copy X256^2"]} +{"step" : 603,"kind" : ["Info"],"goal_id" : 1819,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 603,"kind" : ["Info"],"goal_id" : 1819,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 603,"kind" : ["Info"],"goal_id" : 1819,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 603,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X256^2 := []"]} +{"step" : 603,"kind" : ["Info"],"goal_id" : 1819,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1782,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [c0] (copy-pack-holes c0) X240^2"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1782,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1782,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1782,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 124, column 0, character 4097:","(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4)."]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := copy-pack-holes c0"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X240^2 := [X257^2 | X258^2]"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1782,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1825"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1825,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy-pack-holes c0 c0 X257^2"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1825,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1826"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1826,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map [] (copy-pack-holes c0) X258^2"]} +{"step" : 604,"kind" : ["Info"],"goal_id" : 1825,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1825,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy-pack-holes","copy-pack-holes c0 c0 X257^2"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1825,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1825,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1825,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi\", line 318, column 0, character 12866:","(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2)."]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := c0"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := X257^2"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1825,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1827"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall-local-canonical X259^2"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1828"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1828,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.copy-clauses-for-unfold X259^2 X260^2"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1829"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1829,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X261^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X261^2 | c6] c3) | X260^2]\n => copy c0 X257^2"]} +{"step" : 605,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall-local-canonical","findall-local-canonical X259^2"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi\", line 200, column 0, character 7260:","(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0)."]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := X259^2"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1827,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1830"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1830,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.findall (local-canonical X262^2) X263^2"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1830,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1831"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1831,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.map X263^2 local-canonical-gref X259^2"]} +{"step" : 606,"kind" : ["Info"],"goal_id" : 1830,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 1830,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.findall","std.findall (local-canonical X262^2) X263^2"]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 1830,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 1830,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:"]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 1830,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 283, column 0, character 9378:","(std.findall A0 A1) :- (findall_solutions A0 A1)."]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := local-canonical X262^2"]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X263^2"]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 1830,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1832"]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 1832,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["findall_solutions (local-canonical X262^2) X263^2"]} +{"step" : 607,"kind" : ["Info"],"goal_id" : 1832,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 608,"kind" : ["Info"],"goal_id" : 1832,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["findall_solutions","findall_solutions (local-canonical X262^2) X263^2"]} +{"step" : 608,"kind" : ["Info"],"goal_id" : 1832,"runtime_id" : 8,"name" : "user:rule","payload" : ["findall"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 1834,"runtime_id" : 15,"name" : "user:newgoal","payload" : ["local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1834,"runtime_id" : 15,"name" : "user:curgoal","payload" : ["local-canonical","local-canonical X0^2"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1834,"runtime_id" : 15,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1834,"runtime_id" : 15,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 1,"kind" : ["Info"],"goal_id" : 1834,"runtime_id" : 15,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 608,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X263^2 := []"]} +{"step" : 608,"kind" : ["Info"],"goal_id" : 1832,"runtime_id" : 8,"name" : "user:rule:findall","payload" : ["success"]} +{"step" : 609,"kind" : ["Info"],"goal_id" : 1831,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] local-canonical-gref X259^2"]} +{"step" : 609,"kind" : ["Info"],"goal_id" : 1831,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 609,"kind" : ["Info"],"goal_id" : 1831,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 609,"kind" : ["Info"],"goal_id" : 1831,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 609,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X259^2 := []"]} +{"step" : 609,"kind" : ["Info"],"goal_id" : 1831,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 610,"kind" : ["Info"],"goal_id" : 1828,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.copy-clauses-for-unfold","coq.copy-clauses-for-unfold [] X260^2"]} +{"step" : 610,"kind" : ["Info"],"goal_id" : 1828,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 610,"kind" : ["Info"],"goal_id" : 1828,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:"]} +{"step" : 610,"kind" : ["Info"],"goal_id" : 1828,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi\", line 196, column 0, character 7411:","(coq.copy-clauses-for-unfold [] []) :- ."]} +{"step" : 610,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X260^2 := []"]} +{"step" : 610,"kind" : ["Info"],"goal_id" : 1828,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 611,"kind" : ["Info"],"goal_id" : 1829,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=>","[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X261^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X261^2 | c6] c3)] =>\n copy c0 X257^2"]} +{"step" : 611,"kind" : ["Info"],"goal_id" : 1829,"runtime_id" : 8,"name" : "user:rule","payload" : ["implication"]} +{"step" : 611,"kind" : ["Info"],"goal_id" : 1829,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1835"]} +{"step" : 611,"kind" : ["Info"],"goal_id" : 1835,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["copy c0 X257^2"]} +{"step" : 611,"kind" : ["Info"],"goal_id" : 1835,"runtime_id" : 8,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1835,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["copy","copy c0 X257^2"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1835,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1835,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1835,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 109, column 0, character 4312:","(copy A0 A1) :- (name A0), (!), (A0 = A1), (!)."]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := X257^2"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1835,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1836"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["name c0"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1837"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1837,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1838"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1838,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = X257^2"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1839"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1839,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 612,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 613,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["name","name c0"]} +{"step" : 613,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 613,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["name"]} +{"step" : 613,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 613,"kind" : ["Info"],"goal_id" : 1836,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1840"]} +{"step" : 613,"kind" : ["Info"],"goal_id" : 1840,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["c0 = c0"]} +{"step" : 614,"kind" : ["Info"],"goal_id" : 1840,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = c0"]} +{"step" : 614,"kind" : ["Info"],"goal_id" : 1840,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 614,"kind" : ["Info"],"goal_id" : 1840,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 614,"kind" : ["Info"],"goal_id" : 1840,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 615,"kind" : ["Info"],"goal_id" : 1837,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 615,"kind" : ["Info"],"goal_id" : 1837,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 615,"kind" : ["Info"],"goal_id" : 1837,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 616,"kind" : ["Info"],"goal_id" : 1838,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","c0 = X257^2"]} +{"step" : 616,"kind" : ["Info"],"goal_id" : 1838,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 616,"kind" : ["Info"],"goal_id" : 1838,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 616,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X257 c0 c1 := c0"]} +{"step" : 616,"kind" : ["Info"],"goal_id" : 1838,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 617,"kind" : ["Info"],"goal_id" : 1839,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 617,"kind" : ["Info"],"goal_id" : 1839,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 617,"kind" : ["Info"],"goal_id" : 1839,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 618,"kind" : ["Info"],"goal_id" : 1826,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.map","std.map [] (copy-pack-holes c0) X258^2"]} +{"step" : 618,"kind" : ["Info"],"goal_id" : 1826,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 618,"kind" : ["Info"],"goal_id" : 1826,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:"]} +{"step" : 618,"kind" : ["Info"],"goal_id" : 1826,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 123, column 0, character 4084:","(std.map [] _ []) :- ."]} +{"step" : 618,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X258^2 := []"]} +{"step" : 618,"kind" : ["Info"],"goal_id" : 1826,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1776,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.spy","std.spy\n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1776,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1776,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 45, column 0, character 1682:","File \"builtin_stdlib.elpi\", line 49, column 0, character 1863:"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1776,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 45, column 0, character 1682:","(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0)."]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := std.take 1 \n [app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1776,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1841"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["trace.counter run X264^2"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1842"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["if (not (X264^2 = 0)) (std.debug-print run= X264^2) true"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1843"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1843,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.debug-print ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1844"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1844,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1845"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1845,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.debug-print ---->>---- exit: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)"]} +{"step" : 619,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 620,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["trace.counter","trace.counter run X264^2"]} +{"step" : 620,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 620,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["trace.counter"]} +{"step" : 620,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 620,"kind" : ["Info"],"goal_id" : 1841,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1846"]} +{"step" : 620,"kind" : ["Info"],"goal_id" : 1846,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["X264^2 = 0"]} +{"step" : 621,"kind" : ["Info"],"goal_id" : 1846,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","X264^2 = 0"]} +{"step" : 621,"kind" : ["Info"],"goal_id" : 1846,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 621,"kind" : ["Info"],"goal_id" : 1846,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 621,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["X264^2 := 0"]} +{"step" : 621,"kind" : ["Info"],"goal_id" : 1846,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (not (0 = 0)) (std.debug-print run= 0) true"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 404, column 0, character 9190:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := not (0 = 0)"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := std.debug-print run= 0"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1847"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["not (0 = 0)"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1848"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1848,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1849"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1849,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.debug-print run= 0"]} +{"step" : 622,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["not","not (0 = 0)"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 52, column 0, character 609:","File \"elpi-builtin.elpi\", line 54, column 0, character 631:"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 52, column 0, character 609:","(not A0) :- A0, (!), fail."]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := 0 = 0"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1847,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1850"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1850,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["0 = 0"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1850,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1851"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1851,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1850,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1852"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1852,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["fail"]} +{"step" : 623,"kind" : ["Info"],"goal_id" : 1850,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 624,"kind" : ["Info"],"goal_id" : 1850,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["=","0 = 0"]} +{"step" : 624,"kind" : ["Info"],"goal_id" : 1850,"runtime_id" : 8,"name" : "user:rule","payload" : ["eq"]} +{"step" : 624,"kind" : ["Info"],"goal_id" : 1850,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 624,"kind" : ["Info"],"goal_id" : 1850,"runtime_id" : 8,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 625,"kind" : ["Info"],"goal_id" : 1851,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 625,"kind" : ["Info"],"goal_id" : 1851,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 625,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1847","File \"elpi-builtin.elpi\", line 54, column 0, character 631:","(not _) :- ."]} +{"step" : 625,"kind" : ["Info"],"goal_id" : 1851,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 626,"kind" : ["Info"],"goal_id" : 1852,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["fail","fail"]} +{"step" : 626,"kind" : ["Info"],"goal_id" : 1852,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 626,"kind" : ["Info"],"goal_id" : 1852,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 626,"kind" : ["Info"],"goal_id" : 1852,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 627,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["if","if (not (0 = 0)) (std.debug-print run= 0) true"]} +{"step" : 627,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 627,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:"]} +{"step" : 627,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 405, column 0, character 9211:","(if _ _ A0) :- A0."]} +{"step" : 627,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 627,"kind" : ["Info"],"goal_id" : 1842,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1853"]} +{"step" : 627,"kind" : ["Info"],"goal_id" : 1853,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 627,"kind" : ["Info"],"goal_id" : 1853,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 628,"kind" : ["Info"],"goal_id" : 1853,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 628,"kind" : ["Info"],"goal_id" : 1853,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 628,"kind" : ["Info"],"goal_id" : 1853,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:"]} +{"step" : 628,"kind" : ["Info"],"goal_id" : 1853,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 9, column 0, character 89:","true :- ."]} +{"step" : 628,"kind" : ["Info"],"goal_id" : 1853,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1843,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.debug-print","std.debug-print ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1843,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1843,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 17, column 0, character 660:","File \"builtin_stdlib.elpi\", line 24, column 0, character 874:"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1843,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 17, column 0, character 660:","(std.debug-print A0 A1) :- (!), (coq.say A0 A1)."]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := ----<<---- enter: "]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := std.take 1 \n [app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1843,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1854"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1854,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1854,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1855"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1855,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.say ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)"]} +{"step" : 629,"kind" : ["Info"],"goal_id" : 1854,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 630,"kind" : ["Info"],"goal_id" : 1854,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 630,"kind" : ["Info"],"goal_id" : 1854,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 630,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1843","File \"builtin_stdlib.elpi\", line 24, column 0, character 874:","(std.debug-print A0 A1) :- (print A0 A1)."]} +{"step" : 630,"kind" : ["Info"],"goal_id" : 1854,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 631,"kind" : ["Info"],"goal_id" : 1855,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["coq.say","coq.say ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)"]} +{"step" : 631,"kind" : ["Info"],"goal_id" : 1855,"runtime_id" : 8,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 631,"kind" : ["Info"],"goal_id" : 1855,"runtime_id" : 8,"name" : "user:rule:builtin:name","payload" : ["coq.say"]} +{"step" : 631,"kind" : ["Info"],"goal_id" : 1855,"runtime_id" : 8,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1844,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.take","std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1844,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1844,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 89, column 0, character 2932:","File \"builtin_stdlib.elpi\", line 90, column 0, character 2985:"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1844,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 89, column 0, character 2932:","(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3)."]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := 1"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A1 := app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A2 := [c0]"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1844,"runtime_id" : 8,"name" : "user:backchain:fail-to","payload" : ["unify X230^1 with [app EXN PRINTING: Elpi__Runtime.HO.RestrictionFailure"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1844,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 90, column 0, character 2985:","(std.take _ _ _) :- (std.fatal-error take run out of list items)."]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1844,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1856"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1856,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["std.fatal-error take run out of list items"]} +{"step" : 632,"kind" : ["Info"],"goal_id" : 1856,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1856,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["std.fatal-error","std.fatal-error take run out of list items"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1856,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1856,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 9, column 0, character 465:","File \"builtin_stdlib.elpi\", line 16, column 0, character 659:"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1856,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 9, column 0, character 465:","(std.fatal-error A0) :- (!), (stop A0)."]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := take run out of list items"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1856,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1857"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1857,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1857,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1858"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["stop take run out of list items"]} +{"step" : 633,"kind" : ["Info"],"goal_id" : 1857,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 634,"kind" : ["Info"],"goal_id" : 1857,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 634,"kind" : ["Info"],"goal_id" : 1857,"runtime_id" : 8,"name" : "user:rule","payload" : ["cut"]} +{"step" : 634,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:rule:cut:branch","payload" : ["1856","File \"builtin_stdlib.elpi\", line 16, column 0, character 659:","(std.fatal-error A0) :- (halt A0)."]} +{"step" : 634,"kind" : ["Info"],"goal_id" : 1857,"runtime_id" : 8,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["stop","stop take run out of list items"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"elpi-builtin.elpi\", line 67, column 0, character 960:","File \"/build/source/./elpi/coq-lib.elpi\", line 22, column 0, character 794:","File \"/build/source/./elpi/coq-lib.elpi\", line 23, column 0, character 852:"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"elpi-builtin.elpi\", line 67, column 0, character 960:","stop :- (halt)."]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 22, column 0, character 794:","(stop A0) :- (get-option ltac:fail A1), (!), (coq.ltac.fail A1 A0)."]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := take run out of list items"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1859"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1859,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["get-option ltac:fail X265^2"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1859,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1860"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1860,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1859,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1861"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1861,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.ltac.fail X265^2 take run out of list items"]} +{"step" : 635,"kind" : ["Info"],"goal_id" : 1859,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 636,"kind" : ["Info"],"goal_id" : 1859,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["get-option","get-option ltac:fail X265^2"]} +{"step" : 636,"kind" : ["Info"],"goal_id" : 1859,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 636,"kind" : ["Info"],"goal_id" : 1859,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 636,"kind" : ["Info"],"goal_id" : 1859,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 637,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:curgoal","payload" : ["stop","stop take run out of list items"]} +{"step" : 637,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 637,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:rule:backchain:candidates","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 23, column 0, character 852:"]} +{"step" : 637,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:rule:backchain:try","payload" : ["File \"/build/source/./elpi/coq-lib.elpi\", line 23, column 0, character 852:","(stop A0) :- (coq.error A0)."]} +{"step" : 637,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 8,"name" : "user:assign","payload" : ["A0 := take run out of list items"]} +{"step" : 637,"kind" : ["Info"],"goal_id" : 1858,"runtime_id" : 8,"name" : "user:subgoal","payload" : ["1862"]} +{"step" : 637,"kind" : ["Info"],"goal_id" : 1862,"runtime_id" : 8,"name" : "user:newgoal","payload" : ["coq.error take run out of list items"]} +{"step" : 637,"kind" : ["Info"],"goal_id" : 1862,"runtime_id" : 8,"name" : "user:rule:backchain","payload" : ["success"]} diff --git a/src/tests/sources/trace.elab.json b/src/tests/sources/trace.elab.json new file mode 100644 index 0000000..40803eb --- /dev/null +++ b/src/tests/sources/trace.elab.json @@ -0,0 +1,1313 @@ +[ + { + "step_id": 0, + "runtime_id": 0, + "step": [ + "Init", + { + "goal_text": "main", + "goal_id": 4 + } + ], + "color": "Grey" + }, + { + "step_id": 1, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 4, + "current_goal_text": "main", + "current_goal_predicate": "main", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p 1 A0 ; p 2 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 6, + "column": 0, + "character": 80 + } + ] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "p 1 X0 ; p 2 X1", + "goal_id": 5 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p 1 A0 ; p 2 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 6, + "column": 0, + "character": 80 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 2, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 5, + "current_goal_text": "p 1 X0 ; p 2 X1", + "current_goal_predicate": ";", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := p 1 X0" + ] + ] + }, + "siblings": [ + { + "goal_text": "p 1 X0", + "goal_id": 6 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 11 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p 1 A0 ; p 2 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 6, + "column": 0, + "character": 80 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowGreen" + }, + { + "step_id": 3, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 6, + "current_goal_text": "p 1 X0", + "current_goal_predicate": "p", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(p 1 1) :- (1 is 2 + 3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 2, + "column": 0, + "character": 21 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 1" + ] + ] + }, + "siblings": [ + { + "goal_text": "1 is 2 + 3", + "goal_id": 7 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 7 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 1 1) :- (1 is 2 + 3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 2, + "column": 0, + "character": 21 + } + ] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p 1 A0 ; p 2 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 6, + "column": 0, + "character": 80 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowRed" + }, + { + "step_id": 4, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 7, + "current_goal_text": "1 is 2 + 3", + "current_goal_predicate": "is", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(A1 is A0) :- (calc A0 A1).", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 91, + "column": 0, + "character": 1631 + } + ] + } + ], + "events": [ + [ + "Assign", + "A1 := 1" + ], + [ + "Assign", + "A0 := 2 + 3" + ] + ] + }, + "siblings": [ + { + "goal_text": "calc (2 + 3) 1", + "goal_id": 8 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(A1 is A0) :- (calc A0 A1).", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 91, + "column": 0, + "character": 1631 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(p 1 1) :- (1 is 2 + 3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 2, + "column": 0, + "character": 21 + } + ] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p 1 A0 ; p 2 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 6, + "column": 0, + "character": 80 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowRed" + }, + { + "step_id": 5, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 8, + "current_goal_text": "calc (2 + 3) 1", + "current_goal_predicate": "calc", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "calc", + "kind": "FFI", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "1 = 5", + "goal_id": 9 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "calc", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A1 is A0) :- (calc A0 A1).", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 91, + "column": 0, + "character": 1631 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(p 1 1) :- (1 is 2 + 3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 2, + "column": 0, + "character": 21 + } + ] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p 1 A0 ; p 2 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 6, + "column": 0, + "character": 80 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowRed" + }, + { + "step_id": 6, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 9, + "current_goal_text": "1 = 5", + "current_goal_predicate": "=", + "failed_attempts": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Fail", + "unify 1 with 5" + ] + ] + } + ], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 6, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "calc", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A1 is A0) :- (calc A0 A1).", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 91, + "column": 0, + "character": 1631 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(p 1 1) :- (1 is 2 + 3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 2, + "column": 0, + "character": 21 + } + ] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p 1 A0 ; p 2 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 6, + "column": 0, + "character": 80 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 7, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 6, + "current_goal_text": "p 1 X0", + "current_goal_predicate": "p", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(p 1 2) :- (A0 = 1), (A1 = 2), (A0 = A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 3, + "column": 0, + "character": 42 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 2" + ] + ] + }, + "siblings": [ + { + "goal_text": "X2 = 1", + "goal_id": 10 + }, + { + "goal_text": "X3 = 2", + "goal_id": 11 + }, + { + "goal_text": "X2 = X3", + "goal_id": 12 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 1 2) :- (A0 = 1), (A1 = 2), (A0 = A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 3, + "column": 0, + "character": 42 + } + ] + } + ], + "step_id": 7, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p 1 A0 ; p 2 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 6, + "column": 0, + "character": 80 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowRed" + }, + { + "step_id": 8, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 10, + "current_goal_text": "X2 = 1", + "current_goal_predicate": "=", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Assign", + "X2 := 1" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 8, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(p 1 2) :- (A0 = 1), (A1 = 2), (A0 = A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 3, + "column": 0, + "character": 42 + } + ] + } + ], + "step_id": 7, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p 1 A0 ; p 2 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 6, + "column": 0, + "character": 80 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 9, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 11, + "current_goal_text": "X3 = 2", + "current_goal_predicate": "=", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Assign", + "X3 := 2" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(p 1 2) :- (A0 = 1), (A1 = 2), (A0 = A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 3, + "column": 0, + "character": 42 + } + ] + } + ], + "step_id": 7, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p 1 A0 ; p 2 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 6, + "column": 0, + "character": 80 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 10, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 12, + "current_goal_text": "1 = 2", + "current_goal_predicate": "=", + "failed_attempts": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Fail", + "unify 1 with 2" + ] + ] + } + ], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 10, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(p 1 2) :- (A0 = 1), (A1 = 2), (A0 = A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 3, + "column": 0, + "character": 42 + } + ] + } + ], + "step_id": 7, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p 1 A0 ; p 2 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 6, + "column": 0, + "character": 80 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 11, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 5, + "current_goal_text": "p 1 X0 ; p 2 X1", + "current_goal_predicate": ";", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := p 2 X1" + ] + ] + }, + "siblings": [ + { + "goal_text": "p 2 X1", + "goal_id": 13 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 11, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p 1 A0 ; p 2 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 6, + "column": 0, + "character": 80 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 12, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 13, + "current_goal_text": "p 2 X1", + "current_goal_predicate": "p", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(p 2 3) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 4, + "column": 0, + "character": 72 + } + ] + } + ], + "events": [ + [ + "Assign", + "X1 := 3" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 2 3) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 4, + "column": 0, + "character": 72 + } + ] + } + ], + "step_id": 12, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 11, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p 1 A0 ; p 2 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace.elpi", + "line": 6, + "column": 0, + "character": 80 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + } +] \ No newline at end of file diff --git a/src/tests/sources/trace.json b/src/tests/sources/trace.json new file mode 100644 index 0000000..8786250 --- /dev/null +++ b/src/tests/sources/trace.json @@ -0,0 +1,85 @@ +{"step" : 0,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["main","main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace.elpi\", line 6, column 0, characters 80-105:"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace.elpi\", line 6, column 0, characters 80-105:","main :- (p 1 A0 ; p 2 A1)."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["5"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["p 1 X0 ; p 2 X1"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:curgoal","payload" : [";","p 1 X0 ; p 2 X1"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 41, column 0, characters 586-598:","File \"builtin.elpi\", line 43, column 0, characters 601-613:"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 41, column 0, characters 586-598:","(A0 ; _) :- A0."]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := p 1 X0"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["6"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["p 1 X0"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["p","p 1 X0"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace.elpi\", line 2, column 0, characters 21-40:","File \"tests/sources/trace.elpi\", line 3, column 0, characters 42-70:"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace.elpi\", line 2, column 0, characters 21-40:","(p 1 1) :- (1 is 2 + 3)."]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := 1"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["7"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["1 is 2 + 3"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["is","1 is 2 + 3"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 91, column 0, characters 1631-1649:"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 91, column 0, characters 1631-1649:","(A1 is A0) :- (calc A0 A1)."]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A1 := 1"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := 2 + 3"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["8"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["calc (2 + 3) 1"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["calc","calc (2 + 3) 1"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["calc"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["9"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["1 = 5"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=","1 = 5"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule","payload" : ["eq"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["unify 1 with 5"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule:eq","payload" : ["fail"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["p","p 1 X0"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace.elpi\", line 3, column 0, characters 42-70:"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace.elpi\", line 3, column 0, characters 42-70:","(p 1 2) :- (A0 = 1), (A1 = 2), (A0 = A1)."]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := 2"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["10"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["X2 = 1"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["11"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["X3 = 2"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["12"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["X2 = X3"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=","X2 = 1"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule","payload" : ["eq"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X2 := 1"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=","X3 = 2"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule","payload" : ["eq"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X3 := 2"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=","1 = 2"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:rule","payload" : ["eq"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["unify 1 with 2"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:rule:eq","payload" : ["fail"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:curgoal","payload" : [";","p 1 X0 ; p 2 X1"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 43, column 0, characters 601-613:"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 43, column 0, characters 601-613:","(_ ; A0) :- A0."]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := p 2 X1"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["13"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["p 2 X1"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["p","p 2 X1"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace.elpi\", line 4, column 0, characters 72-77:"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace.elpi\", line 4, column 0, characters 72-77:","(p 2 3) :- ."]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X1 := 3"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} diff --git a/src/tests/sources/trace2.elab.json b/src/tests/sources/trace2.elab.json new file mode 100644 index 0000000..1fb7a95 --- /dev/null +++ b/src/tests/sources/trace2.elab.json @@ -0,0 +1,764 @@ +[ + { + "step_id": 0, + "runtime_id": 0, + "step": [ + "Init", + { + "goal_text": "main", + "goal_id": 4 + } + ], + "color": "Grey" + }, + { + "step_id": 1, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 4, + "current_goal_text": "main", + "current_goal_predicate": "main", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "main :- (print 1), (pi c0 \\ (sigma (c1 \\ (fail => (true , fail))))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace2.elpi", + "line": 1, + "column": 0, + "character": 0 + } + ] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "print 1", + "goal_id": 5 + }, + { + "goal_text": "pi c0 \\ sigma c1 \\ fail => (true , fail)", + "goal_id": 6 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (print 1), (pi c0 \\ (sigma (c1 \\ (fail => (true , fail))))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace2.elpi", + "line": 1, + "column": 0, + "character": 0 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 2, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 5, + "current_goal_text": "print 1", + "current_goal_predicate": "print", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "print", + "kind": "FFI", + "payload": [] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "print", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (print 1), (pi c0 \\ (sigma (c1 \\ (fail => (true , fail))))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace2.elpi", + "line": 1, + "column": 0, + "character": 0 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 3, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 6, + "current_goal_text": "pi c0 \\ sigma c1 \\ fail => (true , fail)", + "current_goal_predicate": "pi", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "sigma c1 \\ fail => (true , fail)", + "goal_id": 7 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (print 1), (pi c0 \\ (sigma (c1 \\ (fail => (true , fail))))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace2.elpi", + "line": 1, + "column": 0, + "character": 0 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 4, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 7, + "current_goal_text": "sigma c1 \\ fail => (true , fail)", + "current_goal_predicate": "sigma", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "sigma", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "fail => (true , fail)", + "goal_id": 8 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "sigma", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (print 1), (pi c0 \\ (sigma (c1 \\ (fail => (true , fail))))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace2.elpi", + "line": 1, + "column": 0, + "character": 0 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 5, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 8, + "current_goal_text": "fail => (true , fail)", + "current_goal_predicate": "=>", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "true , fail", + "goal_id": 9 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "fail :- ." + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "sigma", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (print 1), (pi c0 \\ (sigma (c1 \\ (fail => (true , fail))))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace2.elpi", + "line": 1, + "column": 0, + "character": 0 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 6, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 9, + "current_goal_text": "true , fail", + "current_goal_predicate": ",", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "and", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "true", + "goal_id": 10 + }, + { + "goal_text": "fail", + "goal_id": 11 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "and", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 6, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "fail :- ." + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "sigma", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (print 1), (pi c0 \\ (sigma (c1 \\ (fail => (true , fail))))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace2.elpi", + "line": 1, + "column": 0, + "character": 0 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 7, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 10, + "current_goal_text": "true", + "current_goal_predicate": "true", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "true :- .", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 11, + "column": 0, + "character": 147 + } + ] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "true :- .", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 11, + "column": 0, + "character": 147 + } + ] + } + ], + "step_id": 7, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "and", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 6, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "fail :- ." + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "sigma", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (print 1), (pi c0 \\ (sigma (c1 \\ (fail => (true , fail))))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace2.elpi", + "line": 1, + "column": 0, + "character": 0 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 8, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 11, + "current_goal_text": "fail", + "current_goal_predicate": "fail", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "fail :- .", + "rule_loc": [ + "Context", + 5 + ] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "fail :- .", + "rule_loc": [ + "Context", + 5 + ] + } + ], + "step_id": 8, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "and", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 6, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "fail :- ." + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "sigma", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (print 1), (pi c0 \\ (sigma (c1 \\ (fail => (true , fail))))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace2.elpi", + "line": 1, + "column": 0, + "character": 0 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + } +] \ No newline at end of file diff --git a/src/tests/sources/trace2.json b/src/tests/sources/trace2.json new file mode 100644 index 0000000..1cbd4eb --- /dev/null +++ b/src/tests/sources/trace2.json @@ -0,0 +1,47 @@ +{"step" : 0,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["main","main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace2.elpi\", line 1, column 0, characters 0-56:"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace2.elpi\", line 1, column 0, characters 0-56:","main :- (print 1), (pi c0 \\ (sigma (c1 \\ (fail => (true , fail)))))."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["5"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["print 1"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["6"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["pi c0 \\ sigma c1 \\ fail => (true , fail)"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["print","print 1"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["print"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["pi","pi c0 \\ sigma c1 \\ fail => (true , fail)"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule","payload" : ["pi"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["7"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["sigma c1 \\ fail => (true , fail)"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:pi","payload" : ["success"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["sigma","sigma c1 \\ fail => (true , fail)"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule","payload" : ["sigma"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["8"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["fail => (true , fail)"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:sigma","payload" : ["success"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=>","fail => (true , fail)"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule","payload" : ["implication"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["9"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["true , fail"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:new-hyps","payload" : ["fail :- ."]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:curgoal","payload" : [",","true , fail"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule","payload" : ["and"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["10"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["11"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["fail"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule:and","payload" : ["success"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 11, column 0, characters 147-151:"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 11, column 0, characters 147-151:","true :- ."]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["fail","fail"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:5)\", line 1, column 0, characters 0-0:"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:5)\", line 1, column 0, characters 0-0:","fail :- ."]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} diff --git a/src/tests/sources/trace3.elab.json b/src/tests/sources/trace3.elab.json new file mode 100644 index 0000000..8d2db1b --- /dev/null +++ b/src/tests/sources/trace3.elab.json @@ -0,0 +1,574 @@ +[ + { + "step_id": 0, + "runtime_id": 0, + "step": [ + "Init", + { + "goal_text": "main", + "goal_id": 4 + } + ], + "color": "Grey" + }, + { + "step_id": 1, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 4, + "current_goal_text": "main", + "current_goal_predicate": "main", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p A0 3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 12, + "column": 0, + "character": 89 + } + ] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "p X0 3", + "goal_id": 5 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p A0 3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 12, + "column": 0, + "character": 89 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 2, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 5, + "current_goal_text": "p X0 3", + "current_goal_predicate": "p", + "failed_attempts": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 1 1) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 3, + "column": 0, + "character": 22 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 1" + ], + [ + "Fail", + "unify 3 with 1" + ] + ] + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(p 2 2) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 4, + "column": 0, + "character": 29 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 2" + ], + [ + "Fail", + "unify 3 with 2" + ] + ] + } + ], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(p 3 3) :- fail.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 5, + "column": 0, + "character": 36 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 3" + ] + ] + }, + "siblings": [ + { + "goal_text": "fail", + "goal_id": 6 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 4, + 6 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 1 1) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 3, + "column": 0, + "character": 22 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p A0 3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 12, + "column": 0, + "character": 89 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowGreen" + }, + { + "step_id": 3, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 6, + "current_goal_text": "fail", + "current_goal_predicate": "fail", + "failed_attempts": [], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 1 1) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 3, + "column": 0, + "character": 22 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p A0 3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 12, + "column": 0, + "character": 89 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 4, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 5, + "current_goal_text": "p X0 3", + "current_goal_predicate": "p", + "failed_attempts": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 4 1) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 6, + "column": 0, + "character": 51 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 4" + ], + [ + "Fail", + "unify 3 with 1" + ] + ] + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(p 4 2) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 7, + "column": 0, + "character": 58 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 4" + ], + [ + "Fail", + "unify 3 with 2" + ] + ] + } + ], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(p 4 3) :- fail.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 8, + "column": 0, + "character": 65 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 4" + ] + ] + }, + "siblings": [ + { + "goal_text": "fail", + "goal_id": 7 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 6 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 4 1) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 6, + "column": 0, + "character": 51 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p A0 3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 12, + "column": 0, + "character": 89 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowGreen" + }, + { + "step_id": 5, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 7, + "current_goal_text": "fail", + "current_goal_predicate": "fail", + "failed_attempts": [], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 4 1) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 6, + "column": 0, + "character": 51 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p A0 3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 12, + "column": 0, + "character": 89 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 6, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 5, + "current_goal_text": "p X0 3", + "current_goal_predicate": "p", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(p 5 3) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 9, + "column": 0, + "character": 80 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 5" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 5 3) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 9, + "column": 0, + "character": 80 + } + ] + } + ], + "step_id": 6, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p A0 3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace3.elpi", + "line": 12, + "column": 0, + "character": 89 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + } +] \ No newline at end of file diff --git a/src/tests/sources/trace3.json b/src/tests/sources/trace3.json new file mode 100644 index 0000000..eb6897e --- /dev/null +++ b/src/tests/sources/trace3.json @@ -0,0 +1,50 @@ +{"step" : 0,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["main","main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace3.elpi\", line 12, column 0, characters 89-103:"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace3.elpi\", line 12, column 0, characters 89-103:","main :- (p A0 3)."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["5"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["p X0 3"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["p","p X0 3"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace3.elpi\", line 3, column 0, characters 22-27:","File \"tests/sources/trace3.elpi\", line 4, column 0, characters 29-34:","File \"tests/sources/trace3.elpi\", line 5, column 0, characters 36-49:","File \"tests/sources/trace3.elpi\", line 6, column 0, characters 51-56:","File \"tests/sources/trace3.elpi\", line 7, column 0, characters 58-63:","File \"tests/sources/trace3.elpi\", line 8, column 0, characters 65-78:","File \"tests/sources/trace3.elpi\", line 9, column 0, characters 80-85:"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace3.elpi\", line 3, column 0, characters 22-27:","(p 1 1) :- ."]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := 1"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["unify 3 with 1"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace3.elpi\", line 4, column 0, characters 29-34:","(p 2 2) :- ."]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := 2"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["unify 3 with 2"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace3.elpi\", line 5, column 0, characters 36-49:","(p 3 3) :- fail."]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := 3"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["6"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["fail"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["fail","fail"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["p","p X0 3"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace3.elpi\", line 6, column 0, characters 51-56:","File \"tests/sources/trace3.elpi\", line 7, column 0, characters 58-63:","File \"tests/sources/trace3.elpi\", line 8, column 0, characters 65-78:","File \"tests/sources/trace3.elpi\", line 9, column 0, characters 80-85:"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace3.elpi\", line 6, column 0, characters 51-56:","(p 4 1) :- ."]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := 4"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["unify 3 with 1"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace3.elpi\", line 7, column 0, characters 58-63:","(p 4 2) :- ."]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := 4"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["unify 3 with 2"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace3.elpi\", line 8, column 0, characters 65-78:","(p 4 3) :- fail."]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := 4"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["7"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["fail"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["fail","fail"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 5,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["p","p X0 3"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace3.elpi\", line 9, column 0, characters 80-85:"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace3.elpi\", line 9, column 0, characters 80-85:","(p 5 3) :- ."]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := 5"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} diff --git a/src/tests/sources/trace4.elab.json b/src/tests/sources/trace4.elab.json new file mode 100644 index 0000000..635d8bd --- /dev/null +++ b/src/tests/sources/trace4.elab.json @@ -0,0 +1,761 @@ +[ + { + "step_id": 0, + "runtime_id": 0, + "step": [ + "Init", + { + "goal_text": "main", + "goal_id": 4 + } + ], + "color": "Grey" + }, + { + "step_id": 1, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 4, + "current_goal_text": "main", + "current_goal_predicate": "main", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p A0 3 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace4.elpi", + "line": 11, + "column": 0, + "character": 74 + } + ] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "p X0 3 ; true", + "goal_id": 5 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p A0 3 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace4.elpi", + "line": 11, + "column": 0, + "character": 74 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 2, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 5, + "current_goal_text": "p X0 3 ; true", + "current_goal_predicate": ";", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := p X0 3" + ] + ] + }, + "siblings": [ + { + "goal_text": "p X0 3", + "goal_id": 6 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 6 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p A0 3 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace4.elpi", + "line": 11, + "column": 0, + "character": 74 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowGreen" + }, + { + "step_id": 3, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 6, + "current_goal_text": "p X0 3", + "current_goal_predicate": "p", + "failed_attempts": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 1 1) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace4.elpi", + "line": 3, + "column": 0, + "character": 22 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 1" + ], + [ + "Fail", + "unify 3 with 1" + ] + ] + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(p 2 2) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace4.elpi", + "line": 4, + "column": 0, + "character": 29 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 2" + ], + [ + "Fail", + "unify 3 with 2" + ] + ] + } + ], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(p 3 3) :- fail.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace4.elpi", + "line": 5, + "column": 0, + "character": 36 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 3" + ] + ] + }, + "siblings": [ + { + "goal_text": "fail", + "goal_id": 7 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [ + 5 + ], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 1 1) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace4.elpi", + "line": 3, + "column": 0, + "character": 22 + } + ] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p A0 3 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace4.elpi", + "line": 11, + "column": 0, + "character": 74 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowRed" + }, + { + "step_id": 4, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 7, + "current_goal_text": "fail", + "current_goal_predicate": "fail", + "failed_attempts": [], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 1 1) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace4.elpi", + "line": 3, + "column": 0, + "character": 22 + } + ] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p A0 3 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace4.elpi", + "line": 11, + "column": 0, + "character": 74 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 5, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 6, + "current_goal_text": "p X0 3", + "current_goal_predicate": "p", + "failed_attempts": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 4 1) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace4.elpi", + "line": 6, + "column": 0, + "character": 51 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 4" + ], + [ + "Fail", + "unify 3 with 1" + ] + ] + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(p 4 2) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace4.elpi", + "line": 7, + "column": 0, + "character": 58 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 4" + ], + [ + "Fail", + "unify 3 with 2" + ] + ] + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(p 4 4) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace4.elpi", + "line": 8, + "column": 0, + "character": 65 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 4" + ], + [ + "Fail", + "unify 3 with 4" + ] + ] + } + ], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 4 1) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace4.elpi", + "line": 6, + "column": 0, + "character": 51 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p A0 3 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace4.elpi", + "line": 11, + "column": 0, + "character": 74 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 6, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 5, + "current_goal_text": "p X0 3 ; true", + "current_goal_predicate": ";", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := true" + ] + ] + }, + "siblings": [ + { + "goal_text": "true", + "goal_id": 8 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 6, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p A0 3 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace4.elpi", + "line": 11, + "column": 0, + "character": 74 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 7, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 8, + "current_goal_text": "true", + "current_goal_predicate": "true", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "true :- .", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 11, + "column": 0, + "character": 147 + } + ] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "true :- .", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 11, + "column": 0, + "character": 147 + } + ] + } + ], + "step_id": 7, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 6, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (p A0 3 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace4.elpi", + "line": 11, + "column": 0, + "character": 74 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + } +] \ No newline at end of file diff --git a/src/tests/sources/trace4.json b/src/tests/sources/trace4.json new file mode 100644 index 0000000..ae91372 --- /dev/null +++ b/src/tests/sources/trace4.json @@ -0,0 +1,60 @@ +{"step" : 0,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["main","main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace4.elpi\", line 11, column 0, characters 74-95:"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace4.elpi\", line 11, column 0, characters 74-95:","main :- (p A0 3 ; true)."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["5"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["p X0 3 ; true"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:curgoal","payload" : [";","p X0 3 ; true"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 41, column 0, characters 586-598:","File \"builtin.elpi\", line 43, column 0, characters 601-613:"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 41, column 0, characters 586-598:","(A0 ; _) :- A0."]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := p X0 3"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["6"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["p X0 3"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["p","p X0 3"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace4.elpi\", line 3, column 0, characters 22-27:","File \"tests/sources/trace4.elpi\", line 4, column 0, characters 29-34:","File \"tests/sources/trace4.elpi\", line 5, column 0, characters 36-49:","File \"tests/sources/trace4.elpi\", line 6, column 0, characters 51-56:","File \"tests/sources/trace4.elpi\", line 7, column 0, characters 58-63:","File \"tests/sources/trace4.elpi\", line 8, column 0, characters 65-70:"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace4.elpi\", line 3, column 0, characters 22-27:","(p 1 1) :- ."]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := 1"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["unify 3 with 1"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace4.elpi\", line 4, column 0, characters 29-34:","(p 2 2) :- ."]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := 2"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["unify 3 with 2"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace4.elpi\", line 5, column 0, characters 36-49:","(p 3 3) :- fail."]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := 3"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["7"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["fail"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["fail","fail"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["p","p X0 3"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace4.elpi\", line 6, column 0, characters 51-56:","File \"tests/sources/trace4.elpi\", line 7, column 0, characters 58-63:","File \"tests/sources/trace4.elpi\", line 8, column 0, characters 65-70:"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace4.elpi\", line 6, column 0, characters 51-56:","(p 4 1) :- ."]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := 4"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["unify 3 with 1"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace4.elpi\", line 7, column 0, characters 58-63:","(p 4 2) :- ."]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := 4"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["unify 3 with 2"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace4.elpi\", line 8, column 0, characters 65-70:","(p 4 4) :- ."]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := 4"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["unify 3 with 4"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:curgoal","payload" : [";","p X0 3 ; true"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 43, column 0, characters 601-613:"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 43, column 0, characters 601-613:","(_ ; A0) :- A0."]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["8"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 11, column 0, characters 147-151:"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 11, column 0, characters 147-151:","true :- ."]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} diff --git a/src/tests/sources/trace_chr.elab.json b/src/tests/sources/trace_chr.elab.json new file mode 100644 index 0000000..3420cd1 --- /dev/null +++ b/src/tests/sources/trace_chr.elab.json @@ -0,0 +1,1625 @@ +[ + { + "step_id": 0, + "runtime_id": 0, + "step": [ + "Init", + { + "goal_text": "main", + "goal_id": 4 + } + ], + "color": "Grey" + }, + { + "step_id": 1, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 4, + "current_goal_text": "main", + "current_goal_predicate": "main", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 19, + "column": 0, + "character": 349 + } + ] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "even X0", + "goal_id": 5 + }, + { + "goal_text": "declare_constraint true X0", + "goal_id": 6 + }, + { + "goal_text": "X0 = s X1", + "goal_id": 7 + }, + { + "goal_text": "not (even X1)", + "goal_id": 8 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 19, + "column": 0, + "character": 349 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 2, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 5, + "current_goal_text": "even X0", + "current_goal_predicate": "even", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 16, + "column": 0, + "character": 248 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := X0" + ] + ] + }, + "siblings": [ + { + "goal_text": "declare_constraint (even X0) X0", + "goal_id": 9 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 16, + "column": 0, + "character": 248 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 19, + "column": 0, + "character": 349 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 3, + "runtime_id": 0, + "step": [ + "Suspend", + { + "suspend_goal_id": 9, + "suspend_goal_text": "declare_constraint (even X0) X0", + "suspend_sibling": { + "goal_text": "even X0", + "goal_id": 10 + }, + "suspend_stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "suspend", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 16, + "column": 0, + "character": 248 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 19, + "column": 0, + "character": 349 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 4, + "runtime_id": 0, + "step": [ + "Suspend", + { + "suspend_goal_id": 6, + "suspend_goal_text": "declare_constraint true X0", + "suspend_sibling": { + "goal_text": "true", + "goal_id": 11 + }, + "suspend_stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "suspend", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 19, + "column": 0, + "character": 349 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 5, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 7, + "current_goal_text": "X0 = s X1", + "current_goal_predicate": "=", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Assign", + "X0 := s X1" + ], + [ + "ResumeGoal", + [ + 11, + 10 + ] + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 19, + "column": 0, + "character": 349 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 6, + "runtime_id": 0, + "step": [ + "Resume", + [ + { + "goal_text": "true", + "goal_id": 11 + }, + { + "goal_text": "even (s X1)", + "goal_id": 10 + } + ] + ], + "color": "Grey" + }, + { + "step_id": 7, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 11, + "current_goal_text": "true", + "current_goal_predicate": "true", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "true :- .", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 11, + "column": 0, + "character": 147 + } + ] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "true :- .", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 11, + "column": 0, + "character": 147 + } + ] + } + ], + "step_id": 7, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "resume", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 6, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "suspend", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 19, + "column": 0, + "character": 349 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 8, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 10, + "current_goal_text": "even (s X1)", + "current_goal_predicate": "even", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(even (s A0)) :- (odd A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 14, + "column": 0, + "character": 226 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := X1" + ] + ] + }, + "siblings": [ + { + "goal_text": "odd X1", + "goal_id": 12 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(even (s A0)) :- (odd A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 14, + "column": 0, + "character": 226 + } + ] + } + ], + "step_id": 8, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "resume", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 6, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "suspend", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 16, + "column": 0, + "character": 248 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 19, + "column": 0, + "character": 349 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 9, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 12, + "current_goal_text": "odd X1", + "current_goal_predicate": "odd", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(odd (as uvar A0)) :- (declare_constraint (odd A0) A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 17, + "column": 0, + "character": 299 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := X1" + ] + ] + }, + "siblings": [ + { + "goal_text": "declare_constraint (odd X1) X1", + "goal_id": 13 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(odd (as uvar A0)) :- (declare_constraint (odd A0) A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 17, + "column": 0, + "character": 299 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(even (s A0)) :- (odd A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 14, + "column": 0, + "character": 226 + } + ] + } + ], + "step_id": 8, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "resume", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 6, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "suspend", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 16, + "column": 0, + "character": 248 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 19, + "column": 0, + "character": 349 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 10, + "runtime_id": 0, + "step": [ + "Suspend", + { + "suspend_goal_id": 13, + "suspend_goal_text": "declare_constraint (odd X1) X1", + "suspend_sibling": { + "goal_text": "odd X1", + "goal_id": 14 + }, + "suspend_stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "suspend", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 10, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(odd (as uvar A0)) :- (declare_constraint (odd A0) A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 17, + "column": 0, + "character": 299 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(even (s A0)) :- (odd A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 14, + "column": 0, + "character": 226 + } + ] + } + ], + "step_id": 8, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "resume", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 6, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "suspend", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 16, + "column": 0, + "character": 248 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 19, + "column": 0, + "character": 349 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 11, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 8, + "current_goal_text": "not (even X1)", + "current_goal_predicate": "not", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(not A0) :- A0, !, fail.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 69, + "column": 0, + "character": 1189 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := even X1" + ] + ] + }, + "siblings": [ + { + "goal_text": "even X1", + "goal_id": 15 + }, + { + "goal_text": "!", + "goal_id": 16 + }, + { + "goal_text": "fail", + "goal_id": 17 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 17 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(not A0) :- A0, !, fail.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 69, + "column": 0, + "character": 1189 + } + ] + } + ], + "step_id": 11, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 19, + "column": 0, + "character": 349 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowGreen" + }, + { + "step_id": 12, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 15, + "current_goal_text": "even X1", + "current_goal_predicate": "even", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 16, + "column": 0, + "character": 248 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := X1" + ] + ] + }, + "siblings": [ + { + "goal_text": "declare_constraint (even X1) X1", + "goal_id": 18 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 16, + "column": 0, + "character": 248 + } + ] + } + ], + "step_id": 12, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(not A0) :- A0, !, fail.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 69, + "column": 0, + "character": 1189 + } + ] + } + ], + "step_id": 11, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 19, + "column": 0, + "character": 349 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 13, + "runtime_id": 0, + "step": [ + "Suspend", + { + "suspend_goal_id": 18, + "suspend_goal_text": "declare_constraint (even X1) X1", + "suspend_sibling": { + "goal_text": "even X1", + "goal_id": 19 + }, + "suspend_stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "suspend", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 13, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 16, + "column": 0, + "character": 248 + } + ] + } + ], + "step_id": 12, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(not A0) :- A0, !, fail.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 69, + "column": 0, + "character": 1189 + } + ] + } + ], + "step_id": 11, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 19, + "column": 0, + "character": 349 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 14, + "runtime_id": 0, + "step": [ + "CHR", + { + "chr_failed_attempts": [ + { + "chr_text": " \\ (even A0) (odd A0) | (odd z) <=> (true)", + "chr_loc": { + "filename": "tests/sources/trace_chr.elpi", + "line": 1, + "column": 21, + "character": 21 + }, + "chr_condition_cards": [ + { + "step_id": 0, + "runtime_id": 1, + "step": [ + "Init", + { + "goal_text": "odd z", + "goal_id": 20 + } + ], + "color": "Grey" + }, + { + "step_id": 1, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 20, + "current_goal_text": "odd z", + "current_goal_predicate": "odd", + "failed_attempts": [], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [] + } + ], + "color": "Red" + } + ] + } + ], + "chr_successful_attempts": [ + { + "chr_attempt": { + "chr_text": " \\ (even A0) (odd A0) | (odd (s z)) <=> (fail)", + "chr_loc": { + "filename": "tests/sources/trace_chr.elpi", + "line": 2, + "column": 45, + "character": 67 + }, + "chr_condition_cards": [ + { + "step_id": 0, + "runtime_id": 2, + "step": [ + "Init", + { + "goal_text": "odd (s z)", + "goal_id": 21 + } + ], + "color": "Grey" + }, + { + "step_id": 1, + "runtime_id": 2, + "step": [ + "Inference", + { + "current_goal_id": 21, + "current_goal_text": "odd (s z)", + "current_goal_predicate": "odd", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(odd (s A0)) :- (even A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 13, + "column": 0, + "character": 205 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := z" + ] + ] + }, + "siblings": [ + { + "goal_text": "even z", + "goal_id": 22 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(odd (s A0)) :- (even A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 13, + "column": 0, + "character": 205 + } + ] + } + ], + "step_id": 1, + "runtime_id": 2 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 2, + "runtime_id": 2, + "step": [ + "Inference", + { + "current_goal_id": 22, + "current_goal_text": "even z", + "current_goal_predicate": "even", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(even z) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 11, + "column": 0, + "character": 196 + } + ] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(even z) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 11, + "column": 0, + "character": 196 + } + ] + } + ], + "step_id": 2, + "runtime_id": 2 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(odd (s A0)) :- (even A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 13, + "column": 0, + "character": 205 + } + ] + } + ], + "step_id": 1, + "runtime_id": 2 + } + ] + } + ], + "color": "Green" + } + ] + }, + "chr_removed_goals": [ + 19, + 14 + ], + "chr_new_goals": [ + { + "goal_text": "_ => fail", + "goal_id": 23 + } + ] + } + ], + "chr_store_before": [ + { + "goal_text": " even X1 /* suspended on X1 */", + "goal_id": 19 + }, + { + "goal_text": " odd X1 /* suspended on X1 */", + "goal_id": 14 + } + ], + "chr_store_after": [] + } + ], + "color": "Grey" + }, + { + "step_id": 15, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 23, + "current_goal_text": "_ => fail", + "current_goal_predicate": "=>", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "fail", + "goal_id": 24 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 15, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowRed" + }, + { + "step_id": 16, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 24, + "current_goal_text": "fail", + "current_goal_predicate": "fail", + "failed_attempts": [], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 15, + "runtime_id": 0 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 17, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 8, + "current_goal_text": "not (even X1)", + "current_goal_predicate": "not", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(not _) :- .", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 71, + "column": 0, + "character": 1211 + } + ] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(not _) :- .", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 71, + "column": 0, + "character": 1211 + } + ] + } + ], + "step_id": 17, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_chr.elpi", + "line": 19, + "column": 0, + "character": 349 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + } +] \ No newline at end of file diff --git a/src/tests/sources/trace_chr.json b/src/tests/sources/trace_chr.json new file mode 100644 index 0000000..89b2021 --- /dev/null +++ b/src/tests/sources/trace_chr.json @@ -0,0 +1,143 @@ +{"step" : 0,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["main","main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_chr.elpi\", line 19, column 0, characters 349-420:"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_chr.elpi\", line 19, column 0, characters 349-420:","main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1))."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["5"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["even X0"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["6"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["declare_constraint true X0"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["7"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["X0 = s X1"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["8"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["not (even X1)"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["even","even X0"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_chr.elpi\", line 16, column 0, characters 248-297:"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_chr.elpi\", line 16, column 0, characters 248-297:","(even (as uvar A0)) :- (declare_constraint (even A0) A0)."]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := X0"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["9"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["declare_constraint (even X0) X0"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["declare_constraint","declare_constraint (even X0) X0"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["declare_constraint"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["10"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["even X0"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["declare_constraint","declare_constraint true X0"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["declare_constraint"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["11"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=","X0 = s X1"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule","payload" : ["eq"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := s X1"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign:resume","payload" : ["11 10"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule","payload" : ["resume"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule:resume:resumed","payload" : ["true"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule:resume:resumed","payload" : ["even (s X1)"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:resume","payload" : ["success"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 11, column 0, characters 147-151:"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 11, column 0, characters 147-151:","true :- ."]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["even","even (s X1)"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_chr.elpi\", line 14, column 0, characters 226-245:"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_chr.elpi\", line 14, column 0, characters 226-245:","(even (s A0)) :- (odd A0)."]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := X1"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["12"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["odd X1"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["odd","odd X1"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_chr.elpi\", line 17, column 0, characters 299-346:"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_chr.elpi\", line 17, column 0, characters 299-346:","(odd (as uvar A0)) :- (declare_constraint (odd A0) A0)."]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := X1"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["13"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["declare_constraint (odd X1) X1"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["declare_constraint","declare_constraint (odd X1) X1"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["declare_constraint"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["14"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["odd X1"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["not","not (even X1)"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 69, column 0, characters 1189-1208:","File \"builtin.elpi\", line 71, column 0, characters 1211-1216:"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 69, column 0, characters 1189-1208:","(not A0) :- A0, !, fail."]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := even X1"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["15"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["even X1"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["16"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 16,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["17"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["fail"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["even","even X1"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_chr.elpi\", line 16, column 0, characters 248-297:"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_chr.elpi\", line 16, column 0, characters 248-297:","(even (as uvar A0)) :- (declare_constraint (even A0) A0)."]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := X1"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["18"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["declare_constraint (even X1) X1"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["declare_constraint","declare_constraint (even X1) X1"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["declare_constraint"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["19"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 19,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["even X1"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 19,"runtime_id" : 0,"name" : "user:CHR:try","payload" : ["File \"tests/sources/trace_chr.elpi\", line 1, column 21, characters 21-66:"," \\ (even A0) (odd A0) | (odd z) <=> (true)"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := uvar frozen--421 []"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["odd z"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["odd","odd z"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 1,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:CHR:rule-failed","payload" : []} +{"step" : 14,"kind" : ["Info"],"goal_id" : 19,"runtime_id" : 0,"name" : "user:CHR:try","payload" : ["File \"tests/sources/trace_chr.elpi\", line 2, column 45, characters 67-116:"," \\ (even A0) (odd A0) | (odd (s z)) <=> (fail)"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 2,"name" : "user:assign","payload" : ["A0 := uvar frozen--422 []"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 21,"runtime_id" : 2,"name" : "user:newgoal","payload" : ["odd (s z)"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 21,"runtime_id" : 2,"name" : "user:curgoal","payload" : ["odd","odd (s z)"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 21,"runtime_id" : 2,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 21,"runtime_id" : 2,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_chr.elpi\", line 13, column 0, characters 205-224:"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 21,"runtime_id" : 2,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_chr.elpi\", line 13, column 0, characters 205-224:","(odd (s A0)) :- (even A0)."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 2,"name" : "user:assign","payload" : ["A0 := z"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 21,"runtime_id" : 2,"name" : "user:subgoal","payload" : ["22"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 2,"name" : "user:newgoal","payload" : ["even z"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 2,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 2,"name" : "user:curgoal","payload" : ["even","even z"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 2,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 2,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_chr.elpi\", line 11, column 0, characters 196-202:"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 2,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_chr.elpi\", line 11, column 0, characters 196-202:","(even z) :- ."]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 2,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 19,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["23"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["_ => fail"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 19,"runtime_id" : 0,"name" : "user:CHR:rule-fired","payload" : ["File \"tests/sources/trace_chr.elpi\", line 2, column 45, characters 67-116:"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 19,"runtime_id" : 0,"name" : "user:CHR:rule-remove-constraints","payload" : ["19","14"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:CHR:store:before","payload" : ["19"," even X1 /* suspended on X1 */"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:CHR:store:before","payload" : ["14"," odd X1 /* suspended on X1 */"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:CHR:resumed","payload" : ["_ => fail"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=>","_ => fail"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:rule","payload" : ["implication"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["24"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 24,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["fail"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 24,"runtime_id" : 0,"name" : "user:new-hyps","payload" : []} +{"step" : 15,"kind" : ["Info"],"goal_id" : 24,"runtime_id" : 0,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 24,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["fail","fail"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 24,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 24,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 16,"kind" : ["Info"],"goal_id" : 24,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["not","not (even X1)"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 71, column 0, characters 1211-1216:"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 71, column 0, characters 1211-1216:","(not _) :- ."]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} diff --git a/src/tests/sources/trace_cut.elab.json b/src/tests/sources/trace_cut.elab.json new file mode 100644 index 0000000..83a848a --- /dev/null +++ b/src/tests/sources/trace_cut.elab.json @@ -0,0 +1,931 @@ +[ + { + "step_id": 0, + "runtime_id": 0, + "step": [ + "Init", + { + "goal_text": "main", + "goal_id": 4 + } + ], + "color": "Grey" + }, + { + "step_id": 1, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 4, + "current_goal_text": "main", + "current_goal_predicate": "main", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "main :- p.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 12, + "column": 0, + "character": 78 + } + ] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "p", + "goal_id": 5 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 7 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "main :- p.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 12, + "column": 0, + "character": 78 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowGreen" + }, + { + "step_id": 2, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 5, + "current_goal_text": "p", + "current_goal_predicate": "p", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "p :- fail.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 3, + "column": 0, + "character": 9 + } + ] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "fail", + "goal_id": 6 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 4 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "p :- fail.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 3, + "column": 0, + "character": 9 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- p.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 12, + "column": 0, + "character": 78 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowRed" + }, + { + "step_id": 3, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 6, + "current_goal_text": "fail", + "current_goal_predicate": "fail", + "failed_attempts": [], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "p :- fail.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 3, + "column": 0, + "character": 9 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- p.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 12, + "column": 0, + "character": 78 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 4, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 5, + "current_goal_text": "p (! !)", + "current_goal_predicate": "p", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "p :- !, fail.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 4, + "column": 0, + "character": 20 + } + ] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "!", + "goal_id": 7 + }, + { + "goal_text": "fail", + "goal_id": 8 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "p :- !, fail.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 4, + "column": 0, + "character": 20 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- p.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 12, + "column": 0, + "character": 78 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowRed" + }, + { + "step_id": 5, + "runtime_id": 0, + "step": [ + "Cut", + { + "cut_goal_id": 7, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "p", + "goal_id": 5 + }, + "cut_branch": { + "rule_text": "p :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 5, + "column": 0, + "character": 34 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "p", + "goal_id": 5 + }, + "cut_branch": { + "rule_text": "p :- (print 1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 6, + "column": 0, + "character": 37 + } + ] + } + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 6, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 8, + "current_goal_text": "fail", + "current_goal_predicate": "fail", + "failed_attempts": [], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "p :- !, fail.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 4, + "column": 0, + "character": 20 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- p.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 12, + "column": 0, + "character": 78 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 7, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 4, + "current_goal_text": "main (! !)", + "current_goal_predicate": "main", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "main :- q, !, (q => (q :- !) => q).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 13, + "column": 0, + "character": 89 + } + ] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "q", + "goal_id": 9 + }, + { + "goal_text": "!", + "goal_id": 10 + }, + { + "goal_text": "q => (q :- !) => q", + "goal_id": 11 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "main :- q, !, (q => (q :- !) => q).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 13, + "column": 0, + "character": 89 + } + ] + } + ], + "step_id": 7, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 8, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 9, + "current_goal_text": "q", + "current_goal_predicate": "q", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "q :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 9, + "column": 0, + "character": 60 + } + ] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "q :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 9, + "column": 0, + "character": 60 + } + ] + } + ], + "step_id": 8, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- q, !, (q => (q :- !) => q).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 13, + "column": 0, + "character": 89 + } + ] + } + ], + "step_id": 7, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 9, + "runtime_id": 0, + "step": [ + "Cut", + { + "cut_goal_id": 10, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "q", + "goal_id": 9 + }, + "cut_branch": { + "rule_text": "q :- (print 2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 10, + "column": 0, + "character": 63 + } + ] + } + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 10, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 11, + "current_goal_text": "q => (q :- !) => q", + "current_goal_predicate": "=>", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "(q :- !) => q", + "goal_id": 12 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "q :- ." + ] + } + ], + "step_id": 10, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- q, !, (q => (q :- !) => q).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 13, + "column": 0, + "character": 89 + } + ] + } + ], + "step_id": 7, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 11, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 12, + "current_goal_text": "(q :- !) => q", + "current_goal_predicate": "=>", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "q", + "goal_id": 13 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "q :- !." + ] + } + ], + "step_id": 11, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "q :- ." + ] + } + ], + "step_id": 10, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- q, !, (q => (q :- !) => q).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 13, + "column": 0, + "character": 89 + } + ] + } + ], + "step_id": 7, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 12, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 13, + "current_goal_text": "q", + "current_goal_predicate": "q", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "q :- !.", + "rule_loc": [ + "Context", + 11 + ] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "!", + "goal_id": 14 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "q :- !.", + "rule_loc": [ + "Context", + 11 + ] + } + ], + "step_id": 12, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "q :- !." + ] + } + ], + "step_id": 11, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "q :- ." + ] + } + ], + "step_id": 10, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- q, !, (q => (q :- !) => q).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 13, + "column": 0, + "character": 89 + } + ] + } + ], + "step_id": 7, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 13, + "runtime_id": 0, + "step": [ + "Cut", + { + "cut_goal_id": 14, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "q", + "goal_id": 13 + }, + "cut_branch": { + "rule_text": "q :- .", + "rule_loc": [ + "Context", + 10 + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "q", + "goal_id": 13 + }, + "cut_branch": { + "rule_text": "q :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 9, + "column": 0, + "character": 60 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "q", + "goal_id": 13 + }, + "cut_branch": { + "rule_text": "q :- (print 2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_cut.elpi", + "line": 10, + "column": 0, + "character": 63 + } + ] + } + } + ] + } + ], + "color": "Grey" + } +] \ No newline at end of file diff --git a/src/tests/sources/trace_cut.json b/src/tests/sources/trace_cut.json new file mode 100644 index 0000000..2fc4202 --- /dev/null +++ b/src/tests/sources/trace_cut.json @@ -0,0 +1,82 @@ +{"step" : 0,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["main","main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_cut.elpi\", line 12, column 0, characters 78-87:","File \"tests/sources/trace_cut.elpi\", line 13, column 0, characters 89-121:"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_cut.elpi\", line 12, column 0, characters 78-87:","main :- p."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["5"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["p"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["p","p"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_cut.elpi\", line 3, column 0, characters 9-18:","File \"tests/sources/trace_cut.elpi\", line 4, column 0, characters 20-32:","File \"tests/sources/trace_cut.elpi\", line 5, column 0, characters 34-35:","File \"tests/sources/trace_cut.elpi\", line 6, column 0, characters 37-49:"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_cut.elpi\", line 3, column 0, characters 9-18:","p :- fail."]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["6"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["fail"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["fail","fail"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["p","p (! !)"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_cut.elpi\", line 4, column 0, characters 20-32:","File \"tests/sources/trace_cut.elpi\", line 5, column 0, characters 34-35:","File \"tests/sources/trace_cut.elpi\", line 6, column 0, characters 37-49:"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_cut.elpi\", line 4, column 0, characters 20-32:","p :- !, fail."]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["7"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["8"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["fail"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule","payload" : ["cut"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["5","File \"tests/sources/trace_cut.elpi\", line 5, column 0, characters 34-35:","p :- ."]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["5","File \"tests/sources/trace_cut.elpi\", line 6, column 0, characters 37-49:","p :- (print 1)."]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["fail","fail"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 6,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["main","main (! !)"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_cut.elpi\", line 13, column 0, characters 89-121:"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_cut.elpi\", line 13, column 0, characters 89-121:","main :- q, !, (q => (q :- !) => q)."]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["9"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["q"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["10"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["11"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["q => (q :- !) => q"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["q","q"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_cut.elpi\", line 9, column 0, characters 60-61:","File \"tests/sources/trace_cut.elpi\", line 10, column 0, characters 63-75:"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_cut.elpi\", line 9, column 0, characters 60-61:","q :- ."]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule","payload" : ["cut"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["9","File \"tests/sources/trace_cut.elpi\", line 10, column 0, characters 63-75:","q :- (print 2)."]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=>","q => (q :- !) => q"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule","payload" : ["implication"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["12"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["(q :- !) => q"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:new-hyps","payload" : ["q :- ."]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=>","(q :- !) => q"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:rule","payload" : ["implication"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["13"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["q"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:new-hyps","payload" : ["q :- !."]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["q","q"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:11)\", line 1, column 0, characters 0-0:","File \"(context step_id:10)\", line 1, column 0, characters 0-0:","File \"tests/sources/trace_cut.elpi\", line 9, column 0, characters 60-61:","File \"tests/sources/trace_cut.elpi\", line 10, column 0, characters 63-75:"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:11)\", line 1, column 0, characters 0-0:","q :- !."]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["14"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:rule","payload" : ["cut"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["13","File \"(context step_id:10)\", line 1, column 0, characters 0-0:","q :- ."]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["13","File \"tests/sources/trace_cut.elpi\", line 9, column 0, characters 60-61:","q :- ."]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["13","File \"tests/sources/trace_cut.elpi\", line 10, column 0, characters 63-75:","q :- (print 2)."]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:rule:cut","payload" : ["success"]} diff --git a/src/tests/sources/trace_findall.elab.json b/src/tests/sources/trace_findall.elab.json new file mode 100644 index 0000000..33a7ab9 --- /dev/null +++ b/src/tests/sources/trace_findall.elab.json @@ -0,0 +1,613 @@ +[ + { + "step_id": 0, + "runtime_id": 0, + "step": [ + "Init", + { + "goal_text": "main", + "goal_id": 4 + } + ], + "color": "Grey" + }, + { + "step_id": 1, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 4, + "current_goal_text": "main", + "current_goal_predicate": "main", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "main :- (std.findall (p _) A0), (print A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_findall.elpi", + "line": 6, + "column": 0, + "character": 37 + } + ] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "std.findall (p _) X0", + "goal_id": 5 + }, + { + "goal_text": "print X0", + "goal_id": 6 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (std.findall (p _) A0), (print A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_findall.elpi", + "line": 6, + "column": 0, + "character": 37 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 2, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 5, + "current_goal_text": "std.findall (p _) X0", + "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": 322, + "column": 0, + "character": 10227 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := p _" + ], + [ + "Assign", + "A1 := X0" + ] + ] + }, + "siblings": [ + { + "goal_text": "findall_solutions (p _) X0", + "goal_id": 7 + } + ], + "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": 322, + "column": 0, + "character": 10227 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (std.findall (p _) A0), (print A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_findall.elpi", + "line": 6, + "column": 0, + "character": 37 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 3, + "runtime_id": 0, + "step": [ + "Findall", + { + "findall_goal_id": 7, + "findall_goal_text": "findall_solutions (p _) X0", + "findall_cards": [ + { + "step_id": 0, + "runtime_id": 1, + "step": [ + "Init", + { + "goal_text": "p X0", + "goal_id": 8 + } + ], + "color": "Grey" + }, + { + "step_id": 1, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 8, + "current_goal_text": "p X0", + "current_goal_predicate": "p", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(p 1) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_findall.elpi", + "line": 2, + "column": 0, + "character": 14 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 1" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [ + 2, + 3 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 1) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_findall.elpi", + "line": 2, + "column": 0, + "character": 14 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "YellowGreen" + }, + { + "step_id": 2, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 8, + "current_goal_text": "p X0", + "current_goal_predicate": "p", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(p 2) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_findall.elpi", + "line": 3, + "column": 0, + "character": 19 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 2" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [ + 3 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 2) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_findall.elpi", + "line": 3, + "column": 0, + "character": 19 + } + ] + } + ], + "step_id": 2, + "runtime_id": 1 + } + ] + } + ], + "color": "YellowGreen" + }, + { + "step_id": 3, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 8, + "current_goal_text": "p X0", + "current_goal_predicate": "p", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(p 3) :- (p 2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_findall.elpi", + "line": 4, + "column": 0, + "character": 24 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := 3" + ] + ] + }, + "siblings": [ + { + "goal_text": "p 2", + "goal_id": 9 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 3) :- (p 2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_findall.elpi", + "line": 4, + "column": 0, + "character": 24 + } + ] + } + ], + "step_id": 3, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 4, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 9, + "current_goal_text": "p 2", + "current_goal_predicate": "p", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(p 2) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_findall.elpi", + "line": 3, + "column": 0, + "character": 19 + } + ] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(p 2) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_findall.elpi", + "line": 3, + "column": 0, + "character": 19 + } + ] + } + ], + "step_id": 4, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(p 3) :- (p 2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_findall.elpi", + "line": 4, + "column": 0, + "character": 24 + } + ] + } + ], + "step_id": 3, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + } + ], + "findall_solution_text": [ + "X0 := [p 1, p 2, p 3]" + ], + "findall_stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "findall", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_loc": [ + "File", + { + "filename": "builtin_stdlib.elpi", + "line": 322, + "column": 0, + "character": 10227 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (std.findall (p _) A0), (print A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_findall.elpi", + "line": 6, + "column": 0, + "character": 37 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 4, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 6, + "current_goal_text": "print [p 1, p 2, p 3]", + "current_goal_predicate": "print", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "print", + "kind": "FFI", + "payload": [] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "print", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (std.findall (p _) A0), (print A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_findall.elpi", + "line": 6, + "column": 0, + "character": 37 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + } +] \ No newline at end of file diff --git a/src/tests/sources/trace_findall.json b/src/tests/sources/trace_findall.json new file mode 100644 index 0000000..548d76c --- /dev/null +++ b/src/tests/sources/trace_findall.json @@ -0,0 +1,53 @@ +{"step" : 0,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["main","main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_findall.elpi\", line 6, column 0, characters 37-75:"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_findall.elpi\", line 6, column 0, characters 37-75:","main :- (std.findall (p _) A0), (print A0)."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["5"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["std.findall (p _) X0"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["6"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["print X0"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["std.findall","std.findall (p _) X0"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin_stdlib.elpi\", line 322, column 0, characters 10227-10263:"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin_stdlib.elpi\", line 322, column 0, characters 10227-10263:","(std.findall A0 A1) :- (findall_solutions A0 A1)."]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := p _"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A1 := X0"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["7"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["findall_solutions (p _) X0"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["findall_solutions","findall_solutions (p _) X0"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule","payload" : ["findall"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["p X0"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["p","p X0"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_findall.elpi\", line 2, column 0, characters 14-17:","File \"tests/sources/trace_findall.elpi\", line 3, column 0, characters 19-22:","File \"tests/sources/trace_findall.elpi\", line 4, column 0, characters 24-34:"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_findall.elpi\", line 2, column 0, characters 14-17:","(p 1) :- ."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X0 := 1"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["p","p X0"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_findall.elpi\", line 3, column 0, characters 19-22:","File \"tests/sources/trace_findall.elpi\", line 4, column 0, characters 24-34:"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_findall.elpi\", line 3, column 0, characters 19-22:","(p 2) :- ."]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X0 := 2"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["p","p X0"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_findall.elpi\", line 4, column 0, characters 24-34:"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_findall.elpi\", line 4, column 0, characters 24-34:","(p 3) :- (p 2)."]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X0 := 3"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["9"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["p 2"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["p","p 2"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_findall.elpi\", line 3, column 0, characters 19-22:"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_findall.elpi\", line 3, column 0, characters 19-22:","(p 2) :- ."]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := [p 1, p 2, p 3]"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:findall","payload" : ["success"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["print","print [p 1, p 2, p 3]"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["print"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:builtin","payload" : ["success"]} diff --git a/src/tests/sources/trace_implication.elab.json b/src/tests/sources/trace_implication.elab.json new file mode 100644 index 0000000..16b15e1 --- /dev/null +++ b/src/tests/sources/trace_implication.elab.json @@ -0,0 +1,3486 @@ +[ + { + "step_id": 0, + "runtime_id": 0, + "step": [ + "Init", + { + "goal_text": "main", + "goal_id": 4 + } + ], + "color": "Grey" + }, + { + "step_id": 1, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 4, + "current_goal_text": "main", + "current_goal_predicate": "main", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true", + "goal_id": 5 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 2, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 5, + "current_goal_text": "x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true", + "current_goal_predicate": ";", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := x0 => z0" + ] + ] + }, + "siblings": [ + { + "goal_text": "x0 => z0", + "goal_id": 6 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 5 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowGreen" + }, + { + "step_id": 3, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 6, + "current_goal_text": "x0 => z0", + "current_goal_predicate": "=>", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "z0", + "goal_id": 7 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "x0 :- ." + ] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowRed" + }, + { + "step_id": 4, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 7, + "current_goal_text": "z0", + "current_goal_predicate": "z0", + "failed_attempts": [], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "x0 :- ." + ] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 5, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 5, + "current_goal_text": "x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true", + "current_goal_predicate": ";", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true" + ] + ] + }, + "siblings": [ + { + "goal_text": "(x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true", + "goal_id": 8 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 6, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 8, + "current_goal_text": "(x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true", + "current_goal_predicate": ";", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := (x1 , y1) => z1" + ] + ] + }, + "siblings": [ + { + "goal_text": "(x1 , y1) => z1", + "goal_id": 9 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 9 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 6, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowGreen" + }, + { + "step_id": 7, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 9, + "current_goal_text": "(x1 , y1) => z1", + "current_goal_predicate": "=>", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "z1", + "goal_id": 10 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "x1 :- .", + "y1 :- ." + ] + } + ], + "step_id": 7, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 6, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowRed" + }, + { + "step_id": 8, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 10, + "current_goal_text": "z1", + "current_goal_predicate": "z1", + "failed_attempts": [], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "x1 :- .", + "y1 :- ." + ] + } + ], + "step_id": 7, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 6, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 9, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 8, + "current_goal_text": "(x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true", + "current_goal_predicate": ";", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true" + ] + ] + }, + "siblings": [ + { + "goal_text": "[x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true", + "goal_id": 11 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 10, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 11, + "current_goal_text": "[x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true", + "current_goal_predicate": ";", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := [x2, y2] => z2" + ] + ] + }, + "siblings": [ + { + "goal_text": "[x2, y2] => z2", + "goal_id": 12 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 13 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 10, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowGreen" + }, + { + "step_id": 11, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 12, + "current_goal_text": "[x2, y2] => z2", + "current_goal_predicate": "=>", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "z2", + "goal_id": 13 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "x2 :- .", + "y2 :- ." + ] + } + ], + "step_id": 11, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 10, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowRed" + }, + { + "step_id": 12, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 13, + "current_goal_text": "z2", + "current_goal_predicate": "z2", + "failed_attempts": [], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "x2 :- .", + "y2 :- ." + ] + } + ], + "step_id": 11, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 10, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 13, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 11, + "current_goal_text": "[x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true", + "current_goal_predicate": ";", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true" + ] + ] + }, + "siblings": [ + { + "goal_text": "[(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true", + "goal_id": 14 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 13, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 14, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 14, + "current_goal_text": "[(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true", + "current_goal_predicate": ";", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := [(x3 :- !), (y3 :- !)] => z3" + ] + ] + }, + "siblings": [ + { + "goal_text": "[(x3 :- !), (y3 :- !)] => z3", + "goal_id": 15 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 17 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 14, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 13, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowGreen" + }, + { + "step_id": 15, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 15, + "current_goal_text": "[(x3 :- !), (y3 :- !)] => z3", + "current_goal_predicate": "=>", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "z3", + "goal_id": 16 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "x3 :- !.", + "y3 :- !." + ] + } + ], + "step_id": 15, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 14, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 13, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowRed" + }, + { + "step_id": 16, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 16, + "current_goal_text": "z3", + "current_goal_predicate": "z3", + "failed_attempts": [], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "x3 :- !.", + "y3 :- !." + ] + } + ], + "step_id": 15, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 14, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 13, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 17, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 14, + "current_goal_text": "[(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true", + "current_goal_predicate": ";", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := (x4 :- y4 , !) => z4 ; [] => z5 ; true" + ] + ] + }, + "siblings": [ + { + "goal_text": "(x4 :- y4 , !) => z4 ; [] => z5 ; true", + "goal_id": 17 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 17, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 13, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 18, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 17, + "current_goal_text": "(x4 :- y4 , !) => z4 ; [] => z5 ; true", + "current_goal_predicate": ";", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := (x4 :- y4 , !) => z4" + ] + ] + }, + "siblings": [ + { + "goal_text": "(x4 :- y4 , !) => z4", + "goal_id": 18 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 21 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 18, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 17, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 13, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowGreen" + }, + { + "step_id": 19, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 18, + "current_goal_text": "(x4 :- y4 , !) => z4", + "current_goal_predicate": "=>", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "z4", + "goal_id": 19 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "x4 :- y4, !." + ] + } + ], + "step_id": 19, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 18, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 17, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 13, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowRed" + }, + { + "step_id": 20, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 19, + "current_goal_text": "z4", + "current_goal_predicate": "z4", + "failed_attempts": [], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "x4 :- y4, !." + ] + } + ], + "step_id": 19, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 18, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 17, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 13, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 21, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 17, + "current_goal_text": "(x4 :- y4 , !) => z4 ; [] => z5 ; true", + "current_goal_predicate": ";", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := [] => z5 ; true" + ] + ] + }, + "siblings": [ + { + "goal_text": "[] => z5 ; true", + "goal_id": 20 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 21, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 17, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 13, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 22, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 20, + "current_goal_text": "[] => z5 ; true", + "current_goal_predicate": ";", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := [] => z5" + ] + ] + }, + "siblings": [ + { + "goal_text": "[] => z5", + "goal_id": 21 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 25 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 22, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 21, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 17, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 13, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowGreen" + }, + { + "step_id": 23, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 21, + "current_goal_text": "[] => z5", + "current_goal_predicate": "=>", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "z5", + "goal_id": 22 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 23, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 22, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 21, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 17, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 13, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "YellowRed" + }, + { + "step_id": 24, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 22, + "current_goal_text": "z5", + "current_goal_predicate": "z5", + "failed_attempts": [], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 23, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(A0 ; _) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 41, + "column": 0, + "character": 586 + } + ] + } + ], + "step_id": 22, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 21, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 17, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 13, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 25, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 20, + "current_goal_text": "[] => z5 ; true", + "current_goal_predicate": ";", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := true" + ] + ] + }, + "siblings": [ + { + "goal_text": "true", + "goal_id": 23 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 25, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 21, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 17, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 13, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 26, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 23, + "current_goal_text": "true", + "current_goal_predicate": "true", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "true :- .", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 11, + "column": 0, + "character": 147 + } + ] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "true :- .", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 11, + "column": 0, + "character": 147 + } + ] + } + ], + "step_id": 26, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 25, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 21, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 17, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 13, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(_ ; A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 43, + "column": 0, + "character": 601 + } + ] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace_implication.elpi", + "line": 8, + "column": 0, + "character": 136 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + } +] \ No newline at end of file diff --git a/src/tests/sources/trace_implication.json b/src/tests/sources/trace_implication.json new file mode 100644 index 0000000..566ba3f --- /dev/null +++ b/src/tests/sources/trace_implication.json @@ -0,0 +1,169 @@ +{"step" : 0,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["main","main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace_implication.elpi\", line 8, column 0, characters 136-265:"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace_implication.elpi\", line 8, column 0, characters 136-265:","main :- (x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ;\n (x4 :- y4 , !) => z4 ; [] => z5 ; true)."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["5"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:curgoal","payload" : [";","x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 41, column 0, characters 586-598:","File \"builtin.elpi\", line 43, column 0, characters 601-613:"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 41, column 0, characters 586-598:","(A0 ; _) :- A0."]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := x0 => z0"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["6"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["x0 => z0"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=>","x0 => z0"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule","payload" : ["implication"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["7"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["z0"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:new-hyps","payload" : ["x0 :- ."]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["z0","z0"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:curgoal","payload" : [";","x0 => z0 ;\n (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 43, column 0, characters 601-613:"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 43, column 0, characters 601-613:","(_ ; A0) :- A0."]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := (x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["8"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["(x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:curgoal","payload" : [";","(x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 41, column 0, characters 586-598:","File \"builtin.elpi\", line 43, column 0, characters 601-613:"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 41, column 0, characters 586-598:","(A0 ; _) :- A0."]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := (x1 , y1) => z1"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["9"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["(x1 , y1) => z1"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=>","(x1 , y1) => z1"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule","payload" : ["implication"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["10"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["z1"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:new-hyps","payload" : ["x1 :- .","y1 :- ."]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["z1","z1"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 8,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:curgoal","payload" : [";","(x1 , y1) => z1 ;\n [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 43, column 0, characters 601-613:"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 43, column 0, characters 601-613:","(_ ; A0) :- A0."]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := [x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["11"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["[x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:curgoal","payload" : [";","[x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 41, column 0, characters 586-598:","File \"builtin.elpi\", line 43, column 0, characters 601-613:"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 41, column 0, characters 586-598:","(A0 ; _) :- A0."]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := [x2, y2] => z2"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["12"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["[x2, y2] => z2"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=>","[x2, y2] => z2"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:rule","payload" : ["implication"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["13"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["z2"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:new-hyps","payload" : ["x2 :- .","y2 :- ."]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["z2","z2"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 12,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:curgoal","payload" : [";","[x2, y2] => z2 ;\n [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 43, column 0, characters 601-613:"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 43, column 0, characters 601-613:","(_ ; A0) :- A0."]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := [(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["14"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["[(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:curgoal","payload" : [";","[(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 41, column 0, characters 586-598:","File \"builtin.elpi\", line 43, column 0, characters 601-613:"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 41, column 0, characters 586-598:","(A0 ; _) :- A0."]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := [(x3 :- !), (y3 :- !)] => z3"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["15"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["[(x3 :- !), (y3 :- !)] => z3"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=>","[(x3 :- !), (y3 :- !)] => z3"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:rule","payload" : ["implication"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["16"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 16,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["z3"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 16,"runtime_id" : 0,"name" : "user:new-hyps","payload" : ["x3 :- !.","y3 :- !."]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 16,"runtime_id" : 0,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 16,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["z3","z3"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 16,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 16,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 16,"kind" : ["Info"],"goal_id" : 16,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:curgoal","payload" : [";","[(x3 :- !), (y3 :- !)] => z3 ; (x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 43, column 0, characters 601-613:"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 43, column 0, characters 601-613:","(_ ; A0) :- A0."]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := (x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["17"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["(x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:curgoal","payload" : [";","(x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 41, column 0, characters 586-598:","File \"builtin.elpi\", line 43, column 0, characters 601-613:"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 41, column 0, characters 586-598:","(A0 ; _) :- A0."]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := (x4 :- y4 , !) => z4"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["18"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["(x4 :- y4 , !) => z4"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=>","(x4 :- y4 , !) => z4"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:rule","payload" : ["implication"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["19"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 19,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["z4"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 19,"runtime_id" : 0,"name" : "user:new-hyps","payload" : ["x4 :- y4, !."]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 19,"runtime_id" : 0,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 19,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["z4","z4"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 19,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 19,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 20,"kind" : ["Info"],"goal_id" : 19,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:curgoal","payload" : [";","(x4 :- y4 , !) => z4 ; [] => z5 ; true"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 43, column 0, characters 601-613:"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 43, column 0, characters 601-613:","(_ ; A0) :- A0."]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := [] => z5 ; true"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["20"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["[] => z5 ; true"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 0,"name" : "user:curgoal","payload" : [";","[] => z5 ; true"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 41, column 0, characters 586-598:","File \"builtin.elpi\", line 43, column 0, characters 601-613:"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 41, column 0, characters 586-598:","(A0 ; _) :- A0."]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := [] => z5"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["21"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 21,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["[] => z5"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 21,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 21,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=>","[] => z5"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 21,"runtime_id" : 0,"name" : "user:rule","payload" : ["implication"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 21,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["22"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["z5"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 0,"name" : "user:new-hyps","payload" : []} +{"step" : 23,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 0,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["z5","z5"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 24,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 0,"name" : "user:curgoal","payload" : [";","[] => z5 ; true"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 43, column 0, characters 601-613:"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 43, column 0, characters 601-613:","(_ ; A0) :- A0."]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := true"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["23"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["true"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["true","true"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 11, column 0, characters 147-151:"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 11, column 0, characters 147-151:","true :- ."]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} diff --git a/src/tests/sources/trace_w.elab.json b/src/tests/sources/trace_w.elab.json new file mode 100644 index 0000000..3e0c997 --- /dev/null +++ b/src/tests/sources/trace_w.elab.json @@ -0,0 +1,9884 @@ +[ + { + "step_id": 0, + "runtime_id": 0, + "step": [ + "Init", + { + "goal_text": "main", + "goal_id": 4 + } + ], + "color": "Grey" + }, + { + "step_id": 1, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 4, + "current_goal_text": "main", + "current_goal_predicate": "main", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "tests [2]", + "goal_id": 5 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 2, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 5, + "current_goal_text": "tests [2]", + "current_goal_predicate": "tests", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := 2" + ] + ] + }, + "siblings": [ + { + "goal_text": "test 2 X0", + "goal_id": 6 + }, + { + "goal_text": "typecheck X0", + "goal_id": 7 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 3, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 6, + "current_goal_text": "test 2 X0", + "current_goal_predicate": "test", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(test 2 (let (lam (c0 \\ c0)) A0 (c0 \\ (app c0 (global []))))) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 184, + "column": 0, + "character": 4948 + } + ] + } + ], + "events": [ + [ + "Assign", + "X0 := let (lam c0 \\ c0) X1 c0 \\ app c0 (global [])" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(test 2 (let (lam (c0 \\ c0)) A0 (c0 \\ (app c0 (global []))))) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 184, + "column": 0, + "character": 4948 + } + ] + } + ], + "step_id": 3, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 4, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 7, + "current_goal_text": "typecheck (let (lam c0 \\ c0) X1 c0 \\ app c0 (global []))", + "current_goal_predicate": "typecheck", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := let (lam c0 \\ c0) X1 c0 \\ app c0 (global [])" + ] + ] + }, + "siblings": [ + { + "goal_text": "print Checking: (let (lam c0 \\ c0) X1 c0 \\ app c0 (global []))", + "goal_id": 8 + }, + { + "goal_text": "theta []", + "goal_id": 9 + }, + { + "goal_text": "of (let (lam c0 \\ c0) X1 c0 \\ app c0 (global [])) X2", + "goal_id": 10 + }, + { + "goal_text": "!", + "goal_id": 11 + }, + { + "goal_text": "print (let (lam c0 \\ c0) X1 c0 \\ app c0 (global [])) : X2", + "goal_id": 12 + }, + { + "goal_text": "print", + "goal_id": 13 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 5, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 8, + "current_goal_text": "print Checking: (let (lam c0 \\ c0) X1 c0 \\ app c0 (global []))", + "current_goal_predicate": "print", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "print", + "kind": "FFI", + "payload": [] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "print", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 5, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 6, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 9, + "current_goal_text": "theta []", + "current_goal_predicate": "theta", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(theta A0) :- (new_constraint (theta A0) [_]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 76, + "column": 0, + "character": 1782 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := []" + ] + ] + }, + "siblings": [ + { + "goal_text": "new_constraint (theta []) [_]", + "goal_id": 14 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(theta A0) :- (new_constraint (theta A0) [_]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 76, + "column": 0, + "character": 1782 + } + ] + } + ], + "step_id": 6, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 7, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 14, + "current_goal_text": "new_constraint (theta []) [_]", + "current_goal_predicate": "new_constraint", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(new_constraint A0 A1) :- (declare_constraint A0 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 158, + "column": 0, + "character": 4374 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := theta []" + ], + [ + "Assign", + "A1 := [_]" + ] + ] + }, + "siblings": [ + { + "goal_text": "declare_constraint (theta []) [_]", + "goal_id": 15 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(new_constraint A0 A1) :- (declare_constraint A0 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 158, + "column": 0, + "character": 4374 + } + ] + } + ], + "step_id": 7, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(theta A0) :- (new_constraint (theta A0) [_]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 76, + "column": 0, + "character": 1782 + } + ] + } + ], + "step_id": 6, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 8, + "runtime_id": 0, + "step": [ + "Suspend", + { + "suspend_goal_id": 15, + "suspend_goal_text": "declare_constraint (theta []) [_]", + "suspend_sibling": { + "goal_text": "theta []", + "goal_id": 16 + }, + "suspend_stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "suspend", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 8, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(new_constraint A0 A1) :- (declare_constraint A0 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 158, + "column": 0, + "character": 4374 + } + ] + } + ], + "step_id": 7, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(theta A0) :- (new_constraint (theta A0) [_]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 76, + "column": 0, + "character": 1782 + } + ] + } + ], + "step_id": 6, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 9, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 10, + "current_goal_text": "of (let (lam c0 \\ c0) X1 c0 \\ app c0 (global [])) X2", + "current_goal_predicate": "of", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := lam c0 \\ c0" + ], + [ + "Assign", + "A2 := X1" + ], + [ + "Assign", + "A3 := c0 \\\napp c0 (global [])" + ], + [ + "Assign", + "X2 := mono X3" + ] + ] + }, + "siblings": [ + { + "goal_text": "of (lam c0 \\ c0) (mono X4)", + "goal_id": 17 + }, + { + "goal_text": "gammabar (mono X4) X1", + "goal_id": 18 + }, + { + "goal_text": "pi c0 \\ of c0 X1 => of (app c0 (global [])) (mono X3)", + "goal_id": 19 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 10, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 17, + "current_goal_text": "of (lam c0 \\ c0) (mono X4)", + "current_goal_predicate": "of", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(of (lam A0) (mono (A2 ===> A1))) :- (pi c0 \\\n (of c0 (mono A2) =>\n of (A0 c0) (mono A1))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 8, + "column": 0, + "character": 100 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := c0 \\\nc0" + ], + [ + "Assign", + "X4 := X5 ===> X6" + ] + ] + }, + "siblings": [ + { + "goal_text": "pi c0 \\ of c0 (mono X5) => of c0 (mono X6)", + "goal_id": 20 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(of (lam A0) (mono (A2 ===> A1))) :- (pi c0 \\\n (of c0 (mono A2) =>\n of (A0 c0) (mono A1))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 8, + "column": 0, + "character": 100 + } + ] + } + ], + "step_id": 10, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 11, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 20, + "current_goal_text": "pi c0 \\ of c0 (mono X5) => of c0 (mono X6)", + "current_goal_predicate": "pi", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "of c0 (mono X5) => of c0 (mono X6)", + "goal_id": 21 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 11, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (lam A0) (mono (A2 ===> A1))) :- (pi c0 \\\n (of c0 (mono A2) =>\n of (A0 c0) (mono A1))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 8, + "column": 0, + "character": 100 + } + ] + } + ], + "step_id": 10, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 12, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 21, + "current_goal_text": "of c0 (mono X5) => of c0 (mono X6)", + "current_goal_predicate": "=>", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "of c0 (mono X6)", + "goal_id": 22 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "(of c0 (mono X5)) :- ." + ] + } + ], + "step_id": 12, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 11, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (lam A0) (mono (A2 ===> A1))) :- (pi c0 \\\n (of c0 (mono A2) =>\n of (A0 c0) (mono A1))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 8, + "column": 0, + "character": 100 + } + ] + } + ], + "step_id": 10, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 13, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 22, + "current_goal_text": "of c0 (mono X6)", + "current_goal_predicate": "of", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(of c0 (mono X5)) :- .", + "rule_loc": [ + "Context", + 12 + ] + } + ], + "events": [ + [ + "Assign", + "X6 := X5" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(of c0 (mono X5)) :- .", + "rule_loc": [ + "Context", + 12 + ] + } + ], + "step_id": 13, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "(of c0 (mono X5)) :- ." + ] + } + ], + "step_id": 12, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 11, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (lam A0) (mono (A2 ===> A1))) :- (pi c0 \\\n (of c0 (mono A2) =>\n of (A0 c0) (mono A1))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 8, + "column": 0, + "character": 100 + } + ] + } + ], + "step_id": 10, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 14, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 18, + "current_goal_text": "gammabar (mono (X5 ===> X5)) X1", + "current_goal_predicate": "gammabar", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(gammabar (mono A0) A1) :- (new_constraint (gammabar (mono A0) A1) [_]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 81, + "column": 0, + "character": 1900 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := X5 ===> X5" + ], + [ + "Assign", + "A1 := X1" + ] + ] + }, + "siblings": [ + { + "goal_text": "new_constraint (gammabar (mono (X5 ===> X5)) X1) [_]", + "goal_id": 23 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(gammabar (mono A0) A1) :- (new_constraint (gammabar (mono A0) A1) [_]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 81, + "column": 0, + "character": 1900 + } + ] + } + ], + "step_id": 14, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 15, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 23, + "current_goal_text": "new_constraint (gammabar (mono (X5 ===> X5)) X1) [_]", + "current_goal_predicate": "new_constraint", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(new_constraint A0 A1) :- (declare_constraint A0 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 158, + "column": 0, + "character": 4374 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := gammabar (mono (X5 ===> X5)) X1" + ], + [ + "Assign", + "A1 := [_]" + ] + ] + }, + "siblings": [ + { + "goal_text": "declare_constraint (gammabar (mono (X5 ===> X5)) X1) [_]", + "goal_id": 24 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(new_constraint A0 A1) :- (declare_constraint A0 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 158, + "column": 0, + "character": 4374 + } + ] + } + ], + "step_id": 15, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(gammabar (mono A0) A1) :- (new_constraint (gammabar (mono A0) A1) [_]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 81, + "column": 0, + "character": 1900 + } + ] + } + ], + "step_id": 14, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 16, + "runtime_id": 0, + "step": [ + "Suspend", + { + "suspend_goal_id": 24, + "suspend_goal_text": "declare_constraint (gammabar (mono (X5 ===> X5)) X1) [_]", + "suspend_sibling": { + "goal_text": "gammabar (mono (X5 ===> X5)) X1", + "goal_id": 25 + }, + "suspend_stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "suspend", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 16, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(new_constraint A0 A1) :- (declare_constraint A0 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 158, + "column": 0, + "character": 4374 + } + ] + } + ], + "step_id": 15, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(gammabar (mono A0) A1) :- (new_constraint (gammabar (mono A0) A1) [_]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 81, + "column": 0, + "character": 1900 + } + ] + } + ], + "step_id": 14, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 17, + "runtime_id": 0, + "step": [ + "CHR", + { + "chr_failed_attempts": [], + "chr_successful_attempts": [ + { + "chr_attempt": { + "chr_text": "(theta A0) \\ (A1 ?- gammabar A2 A3) | (generalize A0 A1 A2 A4) <=> (A3 = A4)", + "chr_loc": { + "filename": "tests/sources/trace-w/main.elpi", + "line": 85, + "column": 36, + "character": 2027 + }, + "chr_condition_cards": [ + { + "step_id": 0, + "runtime_id": 1, + "step": [ + "Init", + { + "goal_text": "generalize [] [] (mono (uvar frozen--452 [] ===> uvar frozen--452 [])) X3", + "goal_id": 26 + } + ], + "color": "Grey" + }, + { + "step_id": 1, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 26, + "current_goal_text": "generalize [] [] (mono (uvar frozen--452 [] ===> uvar frozen--452 [])) X3", + "current_goal_predicate": "generalize", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "events": [ + [ + "Assign", + "A5 := []" + ], + [ + "Assign", + "A2 := []" + ], + [ + "Assign", + "A0 := uvar frozen--452 [] ===> uvar frozen--452 []" + ], + [ + "Assign", + "A6 := X3" + ] + ] + }, + "siblings": [ + { + "goal_text": "free-ty (mono (uvar frozen--452 [] ===> uvar frozen--452 [])) [] X4", + "goal_id": 27 + }, + { + "goal_text": "free-gamma [] [] X5", + "goal_id": 28 + }, + { + "goal_text": "filter X4 (c0 \\ not (mem X5 c0)) X6", + "goal_id": 29 + }, + { + "goal_text": "bind X6 [] (uvar frozen--452 [] ===> uvar frozen--452 []) X3", + "goal_id": 30 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 2, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 27, + "current_goal_text": "free-ty (mono (uvar frozen--452 [] ===> uvar frozen--452 [])) [] X4", + "current_goal_predicate": "free-ty", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(free-ty (mono A0) A1 A2) :- (free A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 105, + "column": 0, + "character": 2637 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := uvar frozen--452 [] ===> uvar frozen--452 []" + ], + [ + "Assign", + "A1 := []" + ], + [ + "Assign", + "A2 := X4" + ] + ] + }, + "siblings": [ + { + "goal_text": "free (uvar frozen--452 [] ===> uvar frozen--452 []) [] X4", + "goal_id": 31 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(free-ty (mono A0) A1 A2) :- (free A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 105, + "column": 0, + "character": 2637 + } + ] + } + ], + "step_id": 2, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 3, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 31, + "current_goal_text": "free (uvar frozen--452 [] ===> uvar frozen--452 []) [] X4", + "current_goal_predicate": "free", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(free (A0 ===> A3) A1 A4) :- (free A0 A1 A2), (free A3 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 117, + "column": 0, + "character": 3023 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := uvar frozen--452 []" + ], + [ + "Assign", + "A3 := uvar frozen--452 []" + ], + [ + "Assign", + "A1 := []" + ], + [ + "Assign", + "A4 := X4" + ] + ] + }, + "siblings": [ + { + "goal_text": "free (uvar frozen--452 []) [] X7", + "goal_id": 32 + }, + { + "goal_text": "free (uvar frozen--452 []) X7 X4", + "goal_id": 33 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(free (A0 ===> A3) A1 A4) :- (free A0 A1 A2), (free A3 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 117, + "column": 0, + "character": 3023 + } + ] + } + ], + "step_id": 3, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free-ty (mono A0) A1 A2) :- (free A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 105, + "column": 0, + "character": 2637 + } + ] + } + ], + "step_id": 2, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 4, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 32, + "current_goal_text": "free (uvar frozen--452 []) [] X7", + "current_goal_predicate": "free", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(free (as (uvar _ _) A1) A0 A2) :- (if (mem A0 A1) (A2 = A0) (A2 = [A1 | A0])).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 118, + "column": 0, + "character": 3074 + } + ] + } + ], + "events": [ + [ + "Assign", + "A1 := uvar frozen--452 []" + ], + [ + "Assign", + "A0 := []" + ], + [ + "Assign", + "A2 := X7" + ] + ] + }, + "siblings": [ + { + "goal_text": "if (mem [] (uvar frozen--452 [])) (X7 = []) (X7 = [uvar frozen--452 []])", + "goal_id": 34 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(free (as (uvar _ _) A1) A0 A2) :- (if (mem A0 A1) (A2 = A0) (A2 = [A1 | A0])).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 118, + "column": 0, + "character": 3074 + } + ] + } + ], + "step_id": 4, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (A0 ===> A3) A1 A4) :- (free A0 A1 A2), (free A3 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 117, + "column": 0, + "character": 3023 + } + ] + } + ], + "step_id": 3, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free-ty (mono A0) A1 A2) :- (free A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 105, + "column": 0, + "character": 2637 + } + ] + } + ], + "step_id": 2, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 5, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 34, + "current_goal_text": "if (mem [] (uvar frozen--452 [])) (X7 = []) (X7 = [uvar frozen--452 []])", + "current_goal_predicate": "if", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(if A0 A1 _) :- A0, !, A1.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 536, + "column": 0, + "character": 13939 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := mem [] (uvar frozen--452 [])" + ], + [ + "Assign", + "A1 := X7 = []" + ] + ] + }, + "siblings": [ + { + "goal_text": "mem [] (uvar frozen--452 [])", + "goal_id": 35 + }, + { + "goal_text": "!", + "goal_id": 36 + }, + { + "goal_text": "X7 = []", + "goal_id": 37 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 8 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(if A0 A1 _) :- A0, !, A1.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 536, + "column": 0, + "character": 13939 + } + ] + } + ], + "step_id": 5, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (as (uvar _ _) A1) A0 A2) :- (if (mem A0 A1) (A2 = A0) (A2 = [A1 | A0])).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 118, + "column": 0, + "character": 3074 + } + ] + } + ], + "step_id": 4, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (A0 ===> A3) A1 A4) :- (free A0 A1 A2), (free A3 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 117, + "column": 0, + "character": 3023 + } + ] + } + ], + "step_id": 3, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free-ty (mono A0) A1 A2) :- (free A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 105, + "column": 0, + "character": 2637 + } + ] + } + ], + "step_id": 2, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "YellowGreen" + }, + { + "step_id": 6, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 35, + "current_goal_text": "mem [] (uvar frozen--452 [])", + "current_goal_predicate": "mem", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(mem A0 (uvar A1 _)) :- (mem! A0 (uvar A1 A2)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 148, + "column": 0, + "character": 4032 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := []" + ], + [ + "Assign", + "A1 := frozen--452" + ] + ] + }, + "siblings": [ + { + "goal_text": "mem! [] (uvar frozen--452 X8)", + "goal_id": 38 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(mem A0 (uvar A1 _)) :- (mem! A0 (uvar A1 A2)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 148, + "column": 0, + "character": 4032 + } + ] + } + ], + "step_id": 6, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(if A0 A1 _) :- A0, !, A1.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 536, + "column": 0, + "character": 13939 + } + ] + } + ], + "step_id": 5, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (as (uvar _ _) A1) A0 A2) :- (if (mem A0 A1) (A2 = A0) (A2 = [A1 | A0])).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 118, + "column": 0, + "character": 3074 + } + ] + } + ], + "step_id": 4, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (A0 ===> A3) A1 A4) :- (free A0 A1 A2), (free A3 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 117, + "column": 0, + "character": 3023 + } + ] + } + ], + "step_id": 3, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free-ty (mono A0) A1 A2) :- (free A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 105, + "column": 0, + "character": 2637 + } + ] + } + ], + "step_id": 2, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "YellowRed" + }, + { + "step_id": 7, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 38, + "current_goal_text": "mem! [] (uvar frozen--452 X8)", + "current_goal_predicate": "mem!", + "failed_attempts": [], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(mem A0 (uvar A1 _)) :- (mem! A0 (uvar A1 A2)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 148, + "column": 0, + "character": 4032 + } + ] + } + ], + "step_id": 6, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(if A0 A1 _) :- A0, !, A1.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 536, + "column": 0, + "character": 13939 + } + ] + } + ], + "step_id": 5, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (as (uvar _ _) A1) A0 A2) :- (if (mem A0 A1) (A2 = A0) (A2 = [A1 | A0])).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 118, + "column": 0, + "character": 3074 + } + ] + } + ], + "step_id": 4, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (A0 ===> A3) A1 A4) :- (free A0 A1 A2), (free A3 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 117, + "column": 0, + "character": 3023 + } + ] + } + ], + "step_id": 3, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free-ty (mono A0) A1 A2) :- (free A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 105, + "column": 0, + "character": 2637 + } + ] + } + ], + "step_id": 2, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 8, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 34, + "current_goal_text": "if (mem [] (uvar frozen--452 [])) (X7 = []) (X7 = [uvar frozen--452 []])", + "current_goal_predicate": "if", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(if _ _ A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 537, + "column": 0, + "character": 13960 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := X7 = [uvar frozen--452 []]" + ] + ] + }, + "siblings": [ + { + "goal_text": "X7 = [uvar frozen--452 []]", + "goal_id": 39 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(if _ _ A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 537, + "column": 0, + "character": 13960 + } + ] + } + ], + "step_id": 8, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (as (uvar _ _) A1) A0 A2) :- (if (mem A0 A1) (A2 = A0) (A2 = [A1 | A0])).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 118, + "column": 0, + "character": 3074 + } + ] + } + ], + "step_id": 4, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (A0 ===> A3) A1 A4) :- (free A0 A1 A2), (free A3 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 117, + "column": 0, + "character": 3023 + } + ] + } + ], + "step_id": 3, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free-ty (mono A0) A1 A2) :- (free A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 105, + "column": 0, + "character": 2637 + } + ] + } + ], + "step_id": 2, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 9, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 39, + "current_goal_text": "X7 = [uvar frozen--452 []]", + "current_goal_predicate": "=", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Assign", + "X7 := [uvar frozen--452 []]" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 9, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(if _ _ A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 537, + "column": 0, + "character": 13960 + } + ] + } + ], + "step_id": 8, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (as (uvar _ _) A1) A0 A2) :- (if (mem A0 A1) (A2 = A0) (A2 = [A1 | A0])).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 118, + "column": 0, + "character": 3074 + } + ] + } + ], + "step_id": 4, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (A0 ===> A3) A1 A4) :- (free A0 A1 A2), (free A3 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 117, + "column": 0, + "character": 3023 + } + ] + } + ], + "step_id": 3, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free-ty (mono A0) A1 A2) :- (free A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 105, + "column": 0, + "character": 2637 + } + ] + } + ], + "step_id": 2, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 10, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 33, + "current_goal_text": "free (uvar frozen--452 []) [uvar frozen--452 []] X4", + "current_goal_predicate": "free", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(free (as (uvar _ _) A1) A0 A2) :- (if (mem A0 A1) (A2 = A0) (A2 = [A1 | A0])).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 118, + "column": 0, + "character": 3074 + } + ] + } + ], + "events": [ + [ + "Assign", + "A1 := uvar frozen--452 []" + ], + [ + "Assign", + "A0 := [uvar frozen--452 []]" + ], + [ + "Assign", + "A2 := X4" + ] + ] + }, + "siblings": [ + { + "goal_text": "if (mem [uvar frozen--452 []] (uvar frozen--452 [])) \n (X4 = [uvar frozen--452 []]) \n (X4 = [uvar frozen--452 [], uvar frozen--452 []])", + "goal_id": 40 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(free (as (uvar _ _) A1) A0 A2) :- (if (mem A0 A1) (A2 = A0) (A2 = [A1 | A0])).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 118, + "column": 0, + "character": 3074 + } + ] + } + ], + "step_id": 10, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (A0 ===> A3) A1 A4) :- (free A0 A1 A2), (free A3 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 117, + "column": 0, + "character": 3023 + } + ] + } + ], + "step_id": 3, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free-ty (mono A0) A1 A2) :- (free A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 105, + "column": 0, + "character": 2637 + } + ] + } + ], + "step_id": 2, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 11, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 40, + "current_goal_text": "if (mem [uvar frozen--452 []] (uvar frozen--452 [])) \n (X4 = [uvar frozen--452 []]) \n (X4 = [uvar frozen--452 [], uvar frozen--452 []])", + "current_goal_predicate": "if", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(if A0 A1 _) :- A0, !, A1.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 536, + "column": 0, + "character": 13939 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := mem [uvar frozen--452 []] (uvar frozen--452 [])" + ], + [ + "Assign", + "A1 := X4 = [uvar frozen--452 []]" + ] + ] + }, + "siblings": [ + { + "goal_text": "mem [uvar frozen--452 []] (uvar frozen--452 [])", + "goal_id": 41 + }, + { + "goal_text": "!", + "goal_id": 42 + }, + { + "goal_text": "X4 = [uvar frozen--452 []]", + "goal_id": 43 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(if A0 A1 _) :- A0, !, A1.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 536, + "column": 0, + "character": 13939 + } + ] + } + ], + "step_id": 11, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (as (uvar _ _) A1) A0 A2) :- (if (mem A0 A1) (A2 = A0) (A2 = [A1 | A0])).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 118, + "column": 0, + "character": 3074 + } + ] + } + ], + "step_id": 10, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (A0 ===> A3) A1 A4) :- (free A0 A1 A2), (free A3 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 117, + "column": 0, + "character": 3023 + } + ] + } + ], + "step_id": 3, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free-ty (mono A0) A1 A2) :- (free A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 105, + "column": 0, + "character": 2637 + } + ] + } + ], + "step_id": 2, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 12, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 41, + "current_goal_text": "mem [uvar frozen--452 []] (uvar frozen--452 [])", + "current_goal_predicate": "mem", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(mem A0 (uvar A1 _)) :- (mem! A0 (uvar A1 A2)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 148, + "column": 0, + "character": 4032 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := [uvar frozen--452 []]" + ], + [ + "Assign", + "A1 := frozen--452" + ] + ] + }, + "siblings": [ + { + "goal_text": "mem! [uvar frozen--452 []] (uvar frozen--452 X9)", + "goal_id": 44 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(mem A0 (uvar A1 _)) :- (mem! A0 (uvar A1 A2)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 148, + "column": 0, + "character": 4032 + } + ] + } + ], + "step_id": 12, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(if A0 A1 _) :- A0, !, A1.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 536, + "column": 0, + "character": 13939 + } + ] + } + ], + "step_id": 11, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (as (uvar _ _) A1) A0 A2) :- (if (mem A0 A1) (A2 = A0) (A2 = [A1 | A0])).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 118, + "column": 0, + "character": 3074 + } + ] + } + ], + "step_id": 10, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (A0 ===> A3) A1 A4) :- (free A0 A1 A2), (free A3 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 117, + "column": 0, + "character": 3023 + } + ] + } + ], + "step_id": 3, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free-ty (mono A0) A1 A2) :- (free A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 105, + "column": 0, + "character": 2637 + } + ] + } + ], + "step_id": 2, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 13, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 44, + "current_goal_text": "mem! [uvar frozen--452 []] (uvar frozen--452 X9)", + "current_goal_predicate": "mem!", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(mem! [A0 | _] A0) :- !.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 143, + "column": 0, + "character": 3903 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := uvar frozen--452 []" + ], + [ + "Assign", + "X9 := []" + ] + ] + }, + "siblings": [ + { + "goal_text": "!", + "goal_id": 45 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(mem! [A0 | _] A0) :- !.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 143, + "column": 0, + "character": 3903 + } + ] + } + ], + "step_id": 13, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(mem A0 (uvar A1 _)) :- (mem! A0 (uvar A1 A2)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 148, + "column": 0, + "character": 4032 + } + ] + } + ], + "step_id": 12, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(if A0 A1 _) :- A0, !, A1.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 536, + "column": 0, + "character": 13939 + } + ] + } + ], + "step_id": 11, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (as (uvar _ _) A1) A0 A2) :- (if (mem A0 A1) (A2 = A0) (A2 = [A1 | A0])).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 118, + "column": 0, + "character": 3074 + } + ] + } + ], + "step_id": 10, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (A0 ===> A3) A1 A4) :- (free A0 A1 A2), (free A3 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 117, + "column": 0, + "character": 3023 + } + ] + } + ], + "step_id": 3, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free-ty (mono A0) A1 A2) :- (free A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 105, + "column": 0, + "character": 2637 + } + ] + } + ], + "step_id": 2, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 14, + "runtime_id": 1, + "step": [ + "Cut", + { + "cut_goal_id": 45, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "mem! [uvar frozen--452 []] (uvar frozen--452 X9)", + "goal_id": 44 + }, + "cut_branch": { + "rule_text": "(mem! [_ | A0] A1) :- (mem! A0 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 144, + "column": 0, + "character": 3922 + } + ] + } + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 15, + "runtime_id": 1, + "step": [ + "Cut", + { + "cut_goal_id": 42, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "if (mem [uvar frozen--452 []] (uvar frozen--452 [])) \n (X4 = [uvar frozen--452 []]) \n (X4 = [uvar frozen--452 [], uvar frozen--452 []])", + "goal_id": 40 + }, + "cut_branch": { + "rule_text": "(if _ _ A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 537, + "column": 0, + "character": 13960 + } + ] + } + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 16, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 43, + "current_goal_text": "X4 = [uvar frozen--452 []]", + "current_goal_predicate": "=", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Assign", + "X4 := [uvar frozen--452 []]" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 16, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(if A0 A1 _) :- A0, !, A1.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 536, + "column": 0, + "character": 13939 + } + ] + } + ], + "step_id": 11, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (as (uvar _ _) A1) A0 A2) :- (if (mem A0 A1) (A2 = A0) (A2 = [A1 | A0])).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 118, + "column": 0, + "character": 3074 + } + ] + } + ], + "step_id": 10, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free (A0 ===> A3) A1 A4) :- (free A0 A1 A2), (free A3 A2 A4).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 117, + "column": 0, + "character": 3023 + } + ] + } + ], + "step_id": 3, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(free-ty (mono A0) A1 A2) :- (free A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 105, + "column": 0, + "character": 2637 + } + ] + } + ], + "step_id": 2, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 17, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 28, + "current_goal_text": "free-gamma [] [] X5", + "current_goal_predicate": "free-gamma", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(free-gamma [] A0 A0) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 109, + "column": 0, + "character": 2781 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := []" + ], + [ + "Assign", + "X5 := []" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(free-gamma [] A0 A0) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 109, + "column": 0, + "character": 2781 + } + ] + } + ], + "step_id": 17, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 18, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 29, + "current_goal_text": "filter [uvar frozen--452 []] (c0 \\ not (mem [] c0)) X6", + "current_goal_predicate": "filter", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(filter [A0 | A2] A1 [A0 | A3]) :- (A1 A0), !, (filter A2 A1 A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 139, + "column": 0, + "character": 3789 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := uvar frozen--452 []" + ], + [ + "Assign", + "A2 := []" + ], + [ + "Assign", + "A1 := c0 \\\nnot (mem [] c0)" + ], + [ + "Assign", + "X6 := [uvar frozen--452 [] | X10]" + ] + ] + }, + "siblings": [ + { + "goal_text": "not (mem [] (uvar frozen--452 []))", + "goal_id": 46 + }, + { + "goal_text": "!", + "goal_id": 47 + }, + { + "goal_text": "filter [] (c0 \\ not (mem [] c0)) X10", + "goal_id": 48 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(filter [A0 | A2] A1 [A0 | A3]) :- (A1 A0), !, (filter A2 A1 A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 139, + "column": 0, + "character": 3789 + } + ] + } + ], + "step_id": 18, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 19, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 46, + "current_goal_text": "not (mem [] (uvar frozen--452 []))", + "current_goal_predicate": "not", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(not A0) :- A0, !, fail.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 69, + "column": 0, + "character": 1189 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := mem [] (uvar frozen--452 [])" + ] + ] + }, + "siblings": [ + { + "goal_text": "mem [] (uvar frozen--452 [])", + "goal_id": 49 + }, + { + "goal_text": "!", + "goal_id": 50 + }, + { + "goal_text": "fail", + "goal_id": 51 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 22 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(not A0) :- A0, !, fail.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 69, + "column": 0, + "character": 1189 + } + ] + } + ], + "step_id": 19, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(filter [A0 | A2] A1 [A0 | A3]) :- (A1 A0), !, (filter A2 A1 A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 139, + "column": 0, + "character": 3789 + } + ] + } + ], + "step_id": 18, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "YellowGreen" + }, + { + "step_id": 20, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 49, + "current_goal_text": "mem [] (uvar frozen--452 [])", + "current_goal_predicate": "mem", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(mem A0 (uvar A1 _)) :- (mem! A0 (uvar A1 A2)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 148, + "column": 0, + "character": 4032 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := []" + ], + [ + "Assign", + "A1 := frozen--452" + ] + ] + }, + "siblings": [ + { + "goal_text": "mem! [] (uvar frozen--452 X11)", + "goal_id": 52 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(mem A0 (uvar A1 _)) :- (mem! A0 (uvar A1 A2)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 148, + "column": 0, + "character": 4032 + } + ] + } + ], + "step_id": 20, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(not A0) :- A0, !, fail.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 69, + "column": 0, + "character": 1189 + } + ] + } + ], + "step_id": 19, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(filter [A0 | A2] A1 [A0 | A3]) :- (A1 A0), !, (filter A2 A1 A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 139, + "column": 0, + "character": 3789 + } + ] + } + ], + "step_id": 18, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "YellowRed" + }, + { + "step_id": 21, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 52, + "current_goal_text": "mem! [] (uvar frozen--452 X11)", + "current_goal_predicate": "mem!", + "failed_attempts": [], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(mem A0 (uvar A1 _)) :- (mem! A0 (uvar A1 A2)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 148, + "column": 0, + "character": 4032 + } + ] + } + ], + "step_id": 20, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(not A0) :- A0, !, fail.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 69, + "column": 0, + "character": 1189 + } + ] + } + ], + "step_id": 19, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(filter [A0 | A2] A1 [A0 | A3]) :- (A1 A0), !, (filter A2 A1 A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 139, + "column": 0, + "character": 3789 + } + ] + } + ], + "step_id": 18, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 22, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 46, + "current_goal_text": "not (mem [] (uvar frozen--452 []))", + "current_goal_predicate": "not", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(not _) :- .", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 71, + "column": 0, + "character": 1211 + } + ] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(not _) :- .", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 71, + "column": 0, + "character": 1211 + } + ] + } + ], + "step_id": 22, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(filter [A0 | A2] A1 [A0 | A3]) :- (A1 A0), !, (filter A2 A1 A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 139, + "column": 0, + "character": 3789 + } + ] + } + ], + "step_id": 18, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 23, + "runtime_id": 1, + "step": [ + "Cut", + { + "cut_goal_id": 47, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "filter X4 (c0 \\ not (mem X5 c0)) X6", + "goal_id": 29 + }, + "cut_branch": { + "rule_text": "(filter [_ | A0] A1 A2) :- (filter A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 140, + "column": 0, + "character": 3839 + } + ] + } + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 24, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 48, + "current_goal_text": "filter [] (c0 \\ not (mem [] c0)) X10", + "current_goal_predicate": "filter", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(filter [] _ []) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 138, + "column": 0, + "character": 3773 + } + ] + } + ], + "events": [ + [ + "Assign", + "X10 := []" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(filter [] _ []) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 138, + "column": 0, + "character": 3773 + } + ] + } + ], + "step_id": 24, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(filter [A0 | A2] A1 [A0 | A3]) :- (A1 A0), !, (filter A2 A1 A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 139, + "column": 0, + "character": 3789 + } + ] + } + ], + "step_id": 18, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 25, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 30, + "current_goal_text": "bind [uvar frozen--452 []] [] (uvar frozen--452 [] ===> uvar frozen--452 []) \n X3", + "current_goal_predicate": "bind", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(bind [A1 | A3] A0 A4 (all A2 (c0 \\ (A5 c0)))) :- (if (mem A0 A1) (A2 = eqt) \n (A2 = any)), \n (pi c0 \\ (copy A1 c0 => bind A3 A0 A4 (A5 c0))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 123, + "column": 0, + "character": 3297 + } + ] + } + ], + "events": [ + [ + "Assign", + "A1 := uvar frozen--452 []" + ], + [ + "Assign", + "A3 := []" + ], + [ + "Assign", + "A0 := []" + ], + [ + "Assign", + "A4 := uvar frozen--452 [] ===> uvar frozen--452 []" + ], + [ + "Assign", + "X3 := all X12 c0 \\ X13 c0" + ] + ] + }, + "siblings": [ + { + "goal_text": "if (mem [] (uvar frozen--452 [])) (X12 = eqt) (X12 = any)", + "goal_id": 53 + }, + { + "goal_text": "pi c0 \\\n copy (uvar frozen--452 []) c0 =>\n bind [] [] (uvar frozen--452 [] ===> uvar frozen--452 []) (X13 c0)", + "goal_id": 54 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(bind [A1 | A3] A0 A4 (all A2 (c0 \\ (A5 c0)))) :- (if (mem A0 A1) (A2 = eqt) \n (A2 = any)), \n (pi c0 \\ (copy A1 c0 => bind A3 A0 A4 (A5 c0))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 123, + "column": 0, + "character": 3297 + } + ] + } + ], + "step_id": 25, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 26, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 53, + "current_goal_text": "if (mem [] (uvar frozen--452 [])) (X12 = eqt) (X12 = any)", + "current_goal_predicate": "if", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(if A0 A1 _) :- A0, !, A1.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 536, + "column": 0, + "character": 13939 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := mem [] (uvar frozen--452 [])" + ], + [ + "Assign", + "A1 := X12 = eqt" + ] + ] + }, + "siblings": [ + { + "goal_text": "mem [] (uvar frozen--452 [])", + "goal_id": 55 + }, + { + "goal_text": "!", + "goal_id": 56 + }, + { + "goal_text": "X12 = eqt", + "goal_id": 57 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [ + 29 + ], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(if A0 A1 _) :- A0, !, A1.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 536, + "column": 0, + "character": 13939 + } + ] + } + ], + "step_id": 26, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(bind [A1 | A3] A0 A4 (all A2 (c0 \\ (A5 c0)))) :- (if (mem A0 A1) (A2 = eqt) \n (A2 = any)), \n (pi c0 \\ (copy A1 c0 => bind A3 A0 A4 (A5 c0))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 123, + "column": 0, + "character": 3297 + } + ] + } + ], + "step_id": 25, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "YellowGreen" + }, + { + "step_id": 27, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 55, + "current_goal_text": "mem [] (uvar frozen--452 [])", + "current_goal_predicate": "mem", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(mem A0 (uvar A1 _)) :- (mem! A0 (uvar A1 A2)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 148, + "column": 0, + "character": 4032 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := []" + ], + [ + "Assign", + "A1 := frozen--452" + ] + ] + }, + "siblings": [ + { + "goal_text": "mem! [] (uvar frozen--452 X14)", + "goal_id": 58 + } + ], + "siblings_aggregated_outcome": "Fail" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(mem A0 (uvar A1 _)) :- (mem! A0 (uvar A1 A2)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 148, + "column": 0, + "character": 4032 + } + ] + } + ], + "step_id": 27, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(if A0 A1 _) :- A0, !, A1.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 536, + "column": 0, + "character": 13939 + } + ] + } + ], + "step_id": 26, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(bind [A1 | A3] A0 A4 (all A2 (c0 \\ (A5 c0)))) :- (if (mem A0 A1) (A2 = eqt) \n (A2 = any)), \n (pi c0 \\ (copy A1 c0 => bind A3 A0 A4 (A5 c0))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 123, + "column": 0, + "character": 3297 + } + ] + } + ], + "step_id": 25, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "YellowRed" + }, + { + "step_id": 28, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 58, + "current_goal_text": "mem! [] (uvar frozen--452 X14)", + "current_goal_predicate": "mem!", + "failed_attempts": [], + "successful_attempts": [], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(mem A0 (uvar A1 _)) :- (mem! A0 (uvar A1 A2)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 148, + "column": 0, + "character": 4032 + } + ] + } + ], + "step_id": 27, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(if A0 A1 _) :- A0, !, A1.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 536, + "column": 0, + "character": 13939 + } + ] + } + ], + "step_id": 26, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(bind [A1 | A3] A0 A4 (all A2 (c0 \\ (A5 c0)))) :- (if (mem A0 A1) (A2 = eqt) \n (A2 = any)), \n (pi c0 \\ (copy A1 c0 => bind A3 A0 A4 (A5 c0))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 123, + "column": 0, + "character": 3297 + } + ] + } + ], + "step_id": 25, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Red" + }, + { + "step_id": 29, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 53, + "current_goal_text": "if (mem [] (uvar frozen--452 [])) (X12 = eqt) (X12 = any)", + "current_goal_predicate": "if", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(if _ _ A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 537, + "column": 0, + "character": 13960 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := X12 = any" + ] + ] + }, + "siblings": [ + { + "goal_text": "X12 = any", + "goal_id": 59 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(if _ _ A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 537, + "column": 0, + "character": 13960 + } + ] + } + ], + "step_id": 29, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(bind [A1 | A3] A0 A4 (all A2 (c0 \\ (A5 c0)))) :- (if (mem A0 A1) (A2 = eqt) \n (A2 = any)), \n (pi c0 \\ (copy A1 c0 => bind A3 A0 A4 (A5 c0))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 123, + "column": 0, + "character": 3297 + } + ] + } + ], + "step_id": 25, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 30, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 59, + "current_goal_text": "X12 = any", + "current_goal_predicate": "=", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Assign", + "X12 := any" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 30, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(if _ _ A0) :- A0.", + "rule_loc": [ + "File", + { + "filename": "builtin.elpi", + "line": 537, + "column": 0, + "character": 13960 + } + ] + } + ], + "step_id": 29, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(bind [A1 | A3] A0 A4 (all A2 (c0 \\ (A5 c0)))) :- (if (mem A0 A1) (A2 = eqt) \n (A2 = any)), \n (pi c0 \\ (copy A1 c0 => bind A3 A0 A4 (A5 c0))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 123, + "column": 0, + "character": 3297 + } + ] + } + ], + "step_id": 25, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 31, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 54, + "current_goal_text": "pi c0 \\\n copy (uvar frozen--452 []) c0 =>\n bind [] [] (uvar frozen--452 [] ===> uvar frozen--452 []) (X13 c0)", + "current_goal_predicate": "pi", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "copy (uvar frozen--452 []) c0 =>\n bind [] [] (uvar frozen--452 [] ===> uvar frozen--452 []) (X13 c0)", + "goal_id": 60 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 31, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(bind [A1 | A3] A0 A4 (all A2 (c0 \\ (A5 c0)))) :- (if (mem A0 A1) (A2 = eqt) \n (A2 = any)), \n (pi c0 \\ (copy A1 c0 => bind A3 A0 A4 (A5 c0))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 123, + "column": 0, + "character": 3297 + } + ] + } + ], + "step_id": 25, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 32, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 60, + "current_goal_text": "copy (uvar frozen--452 []) c0 =>\n bind [] [] (uvar frozen--452 [] ===> uvar frozen--452 []) (X13 c0)", + "current_goal_predicate": "=>", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "bind [] [] (uvar frozen--452 [] ===> uvar frozen--452 []) (X13 c0)", + "goal_id": 61 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "(copy (uvar frozen--452 []) c0) :- ." + ] + } + ], + "step_id": 32, + "runtime_id": 1 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 31, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(bind [A1 | A3] A0 A4 (all A2 (c0 \\ (A5 c0)))) :- (if (mem A0 A1) (A2 = eqt) \n (A2 = any)), \n (pi c0 \\ (copy A1 c0 => bind A3 A0 A4 (A5 c0))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 123, + "column": 0, + "character": 3297 + } + ] + } + ], + "step_id": 25, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 33, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 61, + "current_goal_text": "bind [] [] (uvar frozen--452 [] ===> uvar frozen--452 []) (X13 c0)", + "current_goal_predicate": "bind", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(bind [] _ A0 (mono A1)) :- (copy A0 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 122, + "column": 0, + "character": 3261 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := uvar frozen--452 [] ===> uvar frozen--452 []" + ], + [ + "Assign", + "X13 := c0 \\\nX15 c0" + ], + [ + "Assign", + "X15^1 := mono X16^1" + ] + ] + }, + "siblings": [ + { + "goal_text": "copy (uvar frozen--452 [] ===> uvar frozen--452 []) X16^1", + "goal_id": 62 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(bind [] _ A0 (mono A1)) :- (copy A0 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 122, + "column": 0, + "character": 3261 + } + ] + } + ], + "step_id": 33, + "runtime_id": 1 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "(copy (uvar frozen--452 []) c0) :- ." + ] + } + ], + "step_id": 32, + "runtime_id": 1 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 31, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(bind [A1 | A3] A0 A4 (all A2 (c0 \\ (A5 c0)))) :- (if (mem A0 A1) (A2 = eqt) \n (A2 = any)), \n (pi c0 \\ (copy A1 c0 => bind A3 A0 A4 (A5 c0))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 123, + "column": 0, + "character": 3297 + } + ] + } + ], + "step_id": 25, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 34, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 62, + "current_goal_text": "copy (uvar frozen--452 [] ===> uvar frozen--452 []) X16^1", + "current_goal_predicate": "copy", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(copy (A0 ===> A2) (A1 ===> A3)) :- (copy A0 A1), (copy A2 A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 130, + "column": 0, + "character": 3475 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := uvar frozen--452 []" + ], + [ + "Assign", + "A2 := uvar frozen--452 []" + ], + [ + "Assign", + "X16^1 := X17^1 ===> X18^1" + ] + ] + }, + "siblings": [ + { + "goal_text": "copy (uvar frozen--452 []) X17^1", + "goal_id": 63 + }, + { + "goal_text": "copy (uvar frozen--452 []) X18^1", + "goal_id": 64 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(copy (A0 ===> A2) (A1 ===> A3)) :- (copy A0 A1), (copy A2 A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 130, + "column": 0, + "character": 3475 + } + ] + } + ], + "step_id": 34, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(bind [] _ A0 (mono A1)) :- (copy A0 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 122, + "column": 0, + "character": 3261 + } + ] + } + ], + "step_id": 33, + "runtime_id": 1 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "(copy (uvar frozen--452 []) c0) :- ." + ] + } + ], + "step_id": 32, + "runtime_id": 1 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 31, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(bind [A1 | A3] A0 A4 (all A2 (c0 \\ (A5 c0)))) :- (if (mem A0 A1) (A2 = eqt) \n (A2 = any)), \n (pi c0 \\ (copy A1 c0 => bind A3 A0 A4 (A5 c0))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 123, + "column": 0, + "character": 3297 + } + ] + } + ], + "step_id": 25, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 35, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 63, + "current_goal_text": "copy (uvar frozen--452 []) X17^1", + "current_goal_predicate": "copy", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(copy (uvar frozen--452 []) c0) :- .", + "rule_loc": [ + "Context", + 32 + ] + } + ], + "events": [ + [ + "Assign", + "X17^1 := c0" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(copy (uvar frozen--452 []) c0) :- .", + "rule_loc": [ + "Context", + 32 + ] + } + ], + "step_id": 35, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(copy (A0 ===> A2) (A1 ===> A3)) :- (copy A0 A1), (copy A2 A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 130, + "column": 0, + "character": 3475 + } + ] + } + ], + "step_id": 34, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(bind [] _ A0 (mono A1)) :- (copy A0 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 122, + "column": 0, + "character": 3261 + } + ] + } + ], + "step_id": 33, + "runtime_id": 1 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "(copy (uvar frozen--452 []) c0) :- ." + ] + } + ], + "step_id": 32, + "runtime_id": 1 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 31, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(bind [A1 | A3] A0 A4 (all A2 (c0 \\ (A5 c0)))) :- (if (mem A0 A1) (A2 = eqt) \n (A2 = any)), \n (pi c0 \\ (copy A1 c0 => bind A3 A0 A4 (A5 c0))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 123, + "column": 0, + "character": 3297 + } + ] + } + ], + "step_id": 25, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 36, + "runtime_id": 1, + "step": [ + "Inference", + { + "current_goal_id": 64, + "current_goal_text": "copy (uvar frozen--452 []) X18^1", + "current_goal_predicate": "copy", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(copy (uvar frozen--452 []) c0) :- .", + "rule_loc": [ + "Context", + 32 + ] + } + ], + "events": [ + [ + "Assign", + "X18^1 := c0" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(copy (uvar frozen--452 []) c0) :- .", + "rule_loc": [ + "Context", + 32 + ] + } + ], + "step_id": 36, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(copy (A0 ===> A2) (A1 ===> A3)) :- (copy A0 A1), (copy A2 A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 130, + "column": 0, + "character": 3475 + } + ] + } + ], + "step_id": 34, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(bind [] _ A0 (mono A1)) :- (copy A0 A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 122, + "column": 0, + "character": 3261 + } + ] + } + ], + "step_id": 33, + "runtime_id": 1 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "(copy (uvar frozen--452 []) c0) :- ." + ] + } + ], + "step_id": 32, + "runtime_id": 1 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 31, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(bind [A1 | A3] A0 A4 (all A2 (c0 \\ (A5 c0)))) :- (if (mem A0 A1) (A2 = eqt) \n (A2 = any)), \n (pi c0 \\ (copy A1 c0 => bind A3 A0 A4 (A5 c0))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 123, + "column": 0, + "character": 3297 + } + ] + } + ], + "step_id": 25, + "runtime_id": 1 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 97, + "column": 0, + "character": 2346 + } + ] + } + ], + "step_id": 1, + "runtime_id": 1 + } + ] + } + ], + "color": "Green" + } + ] + }, + "chr_removed_goals": [ + 25 + ], + "chr_new_goals": [ + { + "goal_text": "_ => X1 = all any c0 \\ mono (c0 ===> c0)", + "goal_id": 65 + } + ] + } + ], + "chr_store_before": [ + { + "goal_text": " gammabar (mono (X5 ===> X5)) X1 /* suspended on X7 */", + "goal_id": 25 + }, + { + "goal_text": " theta [] /* suspended on X7 */", + "goal_id": 16 + } + ], + "chr_store_after": [ + { + "goal_text": " theta [] /* suspended on X7 */", + "goal_id": 16 + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 18, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 65, + "current_goal_text": "_ => X1 = all any c0 \\ mono (c0 ===> c0)", + "current_goal_predicate": "=>", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "X1 = all any c0 \\ mono (c0 ===> c0)", + "goal_id": 66 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 18, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 19, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 66, + "current_goal_text": "X1 = all any c0 \\ mono (c0 ===> c0)", + "current_goal_predicate": "=", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "events": [ + [ + "Assign", + "X1 := all any c0 \\ mono (c0 ===> c0)" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "eq", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 19, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 18, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 20, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 19, + "current_goal_text": "pi c0 \\\n of c0 (all any c1 \\ mono (c1 ===> c1)) => of (app c0 (global [])) (mono X3)", + "current_goal_predicate": "pi", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "of c0 (all any c1 \\ mono (c1 ===> c1)) => of (app c0 (global [])) (mono X3)", + "goal_id": 67 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 20, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 21, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 67, + "current_goal_text": "of c0 (all any c1 \\ mono (c1 ===> c1)) => of (app c0 (global [])) (mono X3)", + "current_goal_predicate": "=>", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [] + } + ], + "events": [] + }, + "siblings": [ + { + "goal_text": "of (app c0 (global [])) (mono X3)", + "goal_id": 68 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- ." + ] + } + ], + "step_id": 21, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 20, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 22, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 68, + "current_goal_text": "of (app c0 (global [])) (mono X3)", + "current_goal_predicate": "of", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(of (app A0 A3) (mono A2)) :- (of A0 (mono (A1 ===> A2))), (of A3 (mono A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 4, + "column": 0, + "character": 31 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := c0" + ], + [ + "Assign", + "A3 := global []" + ], + [ + "Assign", + "A2 := X3" + ] + ] + }, + "siblings": [ + { + "goal_text": "of c0 (mono (X8^1 ===> X3))", + "goal_id": 69 + }, + { + "goal_text": "of (global []) (mono X8^1)", + "goal_id": 70 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(of (app A0 A3) (mono A2)) :- (of A0 (mono (A1 ===> A2))), (of A3 (mono A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 4, + "column": 0, + "character": 31 + } + ] + } + ], + "step_id": 22, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- ." + ] + } + ], + "step_id": 21, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 20, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 23, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 69, + "current_goal_text": "of c0 (mono (X8^1 ===> X3))", + "current_goal_predicate": "of", + "failed_attempts": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- .", + "rule_loc": [ + "Context", + 21 + ] + } + ], + "events": [ + [ + "Fail", + "unify mono (X8^1 ===> X3) with all any c1 \\ mono (c1 ===> c1)" + ] + ] + } + ], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(of A0 (mono A3)) :- (of A0 (all A1 A2)), (specialize (all A1 A2) A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 21, + "column": 0, + "character": 368 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := c0" + ], + [ + "Assign", + "A3 := X8^1 ===> X3" + ] + ] + }, + "siblings": [ + { + "goal_text": "of c0 (all X9^1 X10^1)", + "goal_id": 71 + }, + { + "goal_text": "specialize (all X9^1 X10^1) (X8^1 ===> X3)", + "goal_id": 72 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- .", + "rule_loc": [ + "Context", + 21 + ] + } + ], + "step_id": 23, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (app A0 A3) (mono A2)) :- (of A0 (mono (A1 ===> A2))), (of A3 (mono A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 4, + "column": 0, + "character": 31 + } + ] + } + ], + "step_id": 22, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- ." + ] + } + ], + "step_id": 21, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 20, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 24, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 71, + "current_goal_text": "of c0 (all X9^1 X10^1)", + "current_goal_predicate": "of", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- .", + "rule_loc": [ + "Context", + 21 + ] + } + ], + "events": [ + [ + "Assign", + "X9^1 := any" + ], + [ + "Assign", + "X10^1 := c1 \\\nmono (c1 ===> c1)" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- .", + "rule_loc": [ + "Context", + 21 + ] + } + ], + "step_id": 24, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- .", + "rule_loc": [ + "Context", + 21 + ] + } + ], + "step_id": 23, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (app A0 A3) (mono A2)) :- (of A0 (mono (A1 ===> A2))), (of A3 (mono A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 4, + "column": 0, + "character": 31 + } + ] + } + ], + "step_id": 22, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- ." + ] + } + ], + "step_id": 21, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 20, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 25, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 72, + "current_goal_text": "specialize (all any c1 \\ mono (c1 ===> c1)) (X8^1 ===> X3)", + "current_goal_predicate": "specialize", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(specialize (all any A1) A2) :- (specialize (A1 A0) A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 57, + "column": 0, + "character": 1282 + } + ] + } + ], + "events": [ + [ + "Assign", + "A1 := c1 \\\nmono (c1 ===> c1)" + ], + [ + "Assign", + "A2 := X8^1 ===> X3" + ] + ] + }, + "siblings": [ + { + "goal_text": "specialize (mono (X11^1 ===> X11^1)) (X8^1 ===> X3)", + "goal_id": 73 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(specialize (all any A1) A2) :- (specialize (A1 A0) A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 57, + "column": 0, + "character": 1282 + } + ] + } + ], + "step_id": 25, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- .", + "rule_loc": [ + "Context", + 21 + ] + } + ], + "step_id": 23, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (app A0 A3) (mono A2)) :- (of A0 (mono (A1 ===> A2))), (of A3 (mono A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 4, + "column": 0, + "character": 31 + } + ] + } + ], + "step_id": 22, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- ." + ] + } + ], + "step_id": 21, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 20, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 26, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 73, + "current_goal_text": "specialize (mono (X11^1 ===> X11^1)) (X8^1 ===> X3)", + "current_goal_predicate": "specialize", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(specialize (mono A0) A0) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 56, + "column": 0, + "character": 1259 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := X11^1 ===> X11^1" + ], + [ + "Assign", + "X11 c0 := X8 c0" + ], + [ + "Assign", + "X8 c0 := X3" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(specialize (mono A0) A0) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 56, + "column": 0, + "character": 1259 + } + ] + } + ], + "step_id": 26, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(specialize (all any A1) A2) :- (specialize (A1 A0) A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 57, + "column": 0, + "character": 1282 + } + ] + } + ], + "step_id": 25, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- .", + "rule_loc": [ + "Context", + 21 + ] + } + ], + "step_id": 23, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (app A0 A3) (mono A2)) :- (of A0 (mono (A1 ===> A2))), (of A3 (mono A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 4, + "column": 0, + "character": 31 + } + ] + } + ], + "step_id": 22, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- ." + ] + } + ], + "step_id": 21, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 20, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 27, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 70, + "current_goal_text": "of (global []) (mono X3)", + "current_goal_predicate": "of", + "failed_attempts": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global 1) (mono int)) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 38, + "column": 0, + "character": 656 + } + ] + } + ], + "events": [ + [ + "Fail", + "match global [] with global 1" + ] + ] + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global 2) (mono int)) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 39, + "column": 0, + "character": 689 + } + ] + } + ], + "events": [ + [ + "Fail", + "match global [] with global 2" + ] + ] + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global 3) (mono int)) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 40, + "column": 0, + "character": 722 + } + ] + } + ], + "events": [ + [ + "Fail", + "match global [] with global 3" + ] + ] + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global plus) (mono (int ===> int ===> int))) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 41, + "column": 0, + "character": 755 + } + ] + } + ], + "events": [ + [ + "Fail", + "match global [] with global plus" + ] + ] + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global []) (all any (c0 \\ (mono (list c0))))) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 43, + "column": 0, + "character": 809 + } + ] + } + ], + "events": [ + [ + "Fail", + "unify mono X3 with all any c0 \\ mono (list c0)" + ] + ] + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global ::) (all any (c0 \\ (mono (c0 ===> list c0 ===> list c0))))) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 44, + "column": 0, + "character": 857 + } + ] + } + ], + "events": [ + [ + "Fail", + "match global [] with global ::" + ] + ] + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global size) (all any (c0 \\ (mono (list c0 ===> int))))) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 45, + "column": 0, + "character": 924 + } + ] + } + ], + "events": [ + [ + "Fail", + "match global [] with global size" + ] + ] + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global undup) (all eqt (c0 \\ (mono (list c0 ===> list c0))))) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 46, + "column": 0, + "character": 981 + } + ] + } + ], + "events": [ + [ + "Fail", + "match global [] with global undup" + ] + ] + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global ,) \n (all any (c0 \\ (all any (c1 \\ (mono (c0 ===> c1 ===> pair c0 c1))))))) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 48, + "column": 0, + "character": 1042 + } + ] + } + ], + "events": [ + [ + "Fail", + "match global [] with global ," + ] + ] + } + ], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(of A0 (mono A3)) :- (of A0 (all A1 A2)), (specialize (all A1 A2) A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 21, + "column": 0, + "character": 368 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := global []" + ], + [ + "Assign", + "A3 := X3" + ] + ] + }, + "siblings": [ + { + "goal_text": "of (global []) (all X12^1 X13^1)", + "goal_id": 74 + }, + { + "goal_text": "specialize (all X12^1 X13^1) X3", + "goal_id": 75 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global 1) (mono int)) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 38, + "column": 0, + "character": 656 + } + ] + } + ], + "step_id": 27, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (app A0 A3) (mono A2)) :- (of A0 (mono (A1 ===> A2))), (of A3 (mono A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 4, + "column": 0, + "character": 31 + } + ] + } + ], + "step_id": 22, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- ." + ] + } + ], + "step_id": 21, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 20, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 28, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 74, + "current_goal_text": "of (global []) (all X12^1 X13^1)", + "current_goal_predicate": "of", + "failed_attempts": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global 1) (mono int)) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 38, + "column": 0, + "character": 656 + } + ] + } + ], + "events": [ + [ + "Fail", + "match global [] with global 1" + ] + ] + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global 2) (mono int)) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 39, + "column": 0, + "character": 689 + } + ] + } + ], + "events": [ + [ + "Fail", + "match global [] with global 2" + ] + ] + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global 3) (mono int)) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 40, + "column": 0, + "character": 722 + } + ] + } + ], + "events": [ + [ + "Fail", + "match global [] with global 3" + ] + ] + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global plus) (mono (int ===> int ===> int))) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 41, + "column": 0, + "character": 755 + } + ] + } + ], + "events": [ + [ + "Fail", + "match global [] with global plus" + ] + ] + } + ], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(of (global []) (all any (c0 \\ (mono (list c0))))) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 43, + "column": 0, + "character": 809 + } + ] + } + ], + "events": [ + [ + "Assign", + "X12^1 := any" + ], + [ + "Assign", + "X13^1 := c1 \\\nmono (list c1)" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global 1) (mono int)) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 38, + "column": 0, + "character": 656 + } + ] + } + ], + "step_id": 28, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global 1) (mono int)) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 38, + "column": 0, + "character": 656 + } + ] + } + ], + "step_id": 27, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (app A0 A3) (mono A2)) :- (of A0 (mono (A1 ===> A2))), (of A3 (mono A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 4, + "column": 0, + "character": 31 + } + ] + } + ], + "step_id": 22, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- ." + ] + } + ], + "step_id": 21, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 20, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 29, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 75, + "current_goal_text": "specialize (all any c1 \\ mono (list c1)) X3", + "current_goal_predicate": "specialize", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(specialize (all any A1) A2) :- (specialize (A1 A0) A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 57, + "column": 0, + "character": 1282 + } + ] + } + ], + "events": [ + [ + "Assign", + "A1 := c1 \\\nmono (list c1)" + ], + [ + "Assign", + "A2 := X3" + ] + ] + }, + "siblings": [ + { + "goal_text": "specialize (mono (list X14^1)) X3", + "goal_id": 76 + } + ], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(specialize (all any A1) A2) :- (specialize (A1 A0) A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 57, + "column": 0, + "character": 1282 + } + ] + } + ], + "step_id": 29, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global 1) (mono int)) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 38, + "column": 0, + "character": 656 + } + ] + } + ], + "step_id": 27, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (app A0 A3) (mono A2)) :- (of A0 (mono (A1 ===> A2))), (of A3 (mono A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 4, + "column": 0, + "character": 31 + } + ] + } + ], + "step_id": 22, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- ." + ] + } + ], + "step_id": 21, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 20, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 30, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 76, + "current_goal_text": "specialize (mono (list X14^1)) X3", + "current_goal_predicate": "specialize", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "UserRule", + { + "rule_text": "(specialize (mono A0) A0) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 56, + "column": 0, + "character": 1259 + } + ] + } + ], + "events": [ + [ + "Assign", + "A0 := list X14^1" + ], + [ + "Assign", + "X14^1 := X15 c0" + ], + [ + "Assign", + "0 X15 c0 := c0 \\\n.X16" + ], + [ + "Assign", + "X3 := list X16" + ] + ] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "UserRule", + { + "rule_text": "(specialize (mono A0) A0) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 56, + "column": 0, + "character": 1259 + } + ] + } + ], + "step_id": 30, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(specialize (all any A1) A2) :- (specialize (A1 A0) A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 57, + "column": 0, + "character": 1282 + } + ] + } + ], + "step_id": 29, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (global 1) (mono int)) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 38, + "column": 0, + "character": 656 + } + ] + } + ], + "step_id": 27, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (app A0 A3) (mono A2)) :- (of A0 (mono (A1 ===> A2))), (of A3 (mono A1)).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 4, + "column": 0, + "character": 31 + } + ] + } + ], + "step_id": 22, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "implication", + "kind": "Logic", + "payload": [ + "(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- ." + ] + } + ], + "step_id": 21, + "runtime_id": 0 + }, + { + "rule": [ + "BuiltinRule", + { + "name": "pi", + "kind": "Logic", + "payload": [] + } + ], + "step_id": 20, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4))).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 11, + "column": 0, + "character": 177 + } + ] + } + ], + "step_id": 9, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 31, + "runtime_id": 0, + "step": [ + "Cut", + { + "cut_goal_id": 11, + "cut_victims": [ + { + "cut_branch_for_goal": { + "goal_text": "specialize (all X12^1 X13^1) X3", + "goal_id": 75 + }, + "cut_branch": { + "rule_text": "(specialize (all eqt A1) A2) :- (specialize (A1 A0) A2), (eqbar A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 58, + "column": 0, + "character": 1335 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (global []) (all X12^1 X13^1)", + "goal_id": 74 + }, + "cut_branch": { + "rule_text": "(of (global ::) (all any (c0 \\ (mono (c0 ===> list c0 ===> list c0))))) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 44, + "column": 0, + "character": 857 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (global []) (all X12^1 X13^1)", + "goal_id": 74 + }, + "cut_branch": { + "rule_text": "(of (global size) (all any (c0 \\ (mono (list c0 ===> int))))) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 45, + "column": 0, + "character": 924 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (global []) (all X12^1 X13^1)", + "goal_id": 74 + }, + "cut_branch": { + "rule_text": "(of (global undup) (all eqt (c0 \\ (mono (list c0 ===> list c0))))) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 46, + "column": 0, + "character": 981 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (global []) (all X12^1 X13^1)", + "goal_id": 74 + }, + "cut_branch": { + "rule_text": "(of (global ,) \n (all any (c0 \\ (all any (c1 \\ (mono (c0 ===> c1 ===> pair c0 c1))))))) :- .", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 48, + "column": 0, + "character": 1042 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (global []) (all X12^1 X13^1)", + "goal_id": 74 + }, + "cut_branch": { + "rule_text": "(of A0 (mono A3)) :- (of A0 (all A1 A2)), (specialize (all A1 A2) A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 21, + "column": 0, + "character": 368 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (global []) (all X12^1 X13^1)", + "goal_id": 74 + }, + "cut_branch": { + "rule_text": "(of A0 (mono A2)) :- (not err), !, (err => of A0 (mono A1)), \n (assert A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 163, + "column": 0, + "character": 4507 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (global []) (all X12^1 X13^1)", + "goal_id": 74 + }, + "cut_branch": { + "rule_text": "(of A0 (mono _)) :- (print KO: term ( A0 ) has no type\n), halt.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 164, + "column": 0, + "character": 4578 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (global []) (mono X8^1)", + "goal_id": 70 + }, + "cut_branch": { + "rule_text": "(of A0 (mono A2)) :- (not err), !, (err => of A0 (mono A1)), \n (assert A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 163, + "column": 0, + "character": 4507 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (global []) (mono X8^1)", + "goal_id": 70 + }, + "cut_branch": { + "rule_text": "(of A0 (mono _)) :- (print KO: term ( A0 ) has no type\n), halt.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 164, + "column": 0, + "character": 4578 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "specialize (all X9^1 X10^1) (X8^1 ===> X3)", + "goal_id": 72 + }, + "cut_branch": { + "rule_text": "(specialize (all eqt A1) A2) :- (specialize (A1 A0) A2), (eqbar A0).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 58, + "column": 0, + "character": 1335 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of c0 (all X9^1 X10^1)", + "goal_id": 71 + }, + "cut_branch": { + "rule_text": "(of A0 (mono A3)) :- (of A0 (all A1 A2)), (specialize (all A1 A2) A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 21, + "column": 0, + "character": 368 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of c0 (all X9^1 X10^1)", + "goal_id": 71 + }, + "cut_branch": { + "rule_text": "(of A0 (mono A2)) :- (not err), !, (err => of A0 (mono A1)), \n (assert A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 163, + "column": 0, + "character": 4507 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of c0 (all X9^1 X10^1)", + "goal_id": 71 + }, + "cut_branch": { + "rule_text": "(of A0 (mono _)) :- (print KO: term ( A0 ) has no type\n), halt.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 164, + "column": 0, + "character": 4578 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of c0 (mono (X8^1 ===> X3))", + "goal_id": 69 + }, + "cut_branch": { + "rule_text": "(of A0 (mono A2)) :- (not err), !, (err => of A0 (mono A1)), \n (assert A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 163, + "column": 0, + "character": 4507 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of c0 (mono (X8^1 ===> X3))", + "goal_id": 69 + }, + "cut_branch": { + "rule_text": "(of A0 (mono _)) :- (print KO: term ( A0 ) has no type\n), halt.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 164, + "column": 0, + "character": 4578 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (app c0 (global [])) (mono X3)", + "goal_id": 68 + }, + "cut_branch": { + "rule_text": "(of A0 (mono A3)) :- (of A0 (all A1 A2)), (specialize (all A1 A2) A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 21, + "column": 0, + "character": 368 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (app c0 (global [])) (mono X3)", + "goal_id": 68 + }, + "cut_branch": { + "rule_text": "(of A0 (mono A2)) :- (not err), !, (err => of A0 (mono A1)), \n (assert A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 163, + "column": 0, + "character": 4507 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (app c0 (global [])) (mono X3)", + "goal_id": 68 + }, + "cut_branch": { + "rule_text": "(of A0 (mono _)) :- (print KO: term ( A0 ) has no type\n), halt.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 164, + "column": 0, + "character": 4578 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of c0 (mono X6)", + "goal_id": 22 + }, + "cut_branch": { + "rule_text": "(of A0 (mono A3)) :- (of A0 (all A1 A2)), (specialize (all A1 A2) A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 21, + "column": 0, + "character": 368 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of c0 (mono X6)", + "goal_id": 22 + }, + "cut_branch": { + "rule_text": "(of A0 (mono A2)) :- (not err), !, (err => of A0 (mono A1)), \n (assert A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 163, + "column": 0, + "character": 4507 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of c0 (mono X6)", + "goal_id": 22 + }, + "cut_branch": { + "rule_text": "(of A0 (mono _)) :- (print KO: term ( A0 ) has no type\n), halt.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 164, + "column": 0, + "character": 4578 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (lam c0 \\ c0) (mono X4)", + "goal_id": 17 + }, + "cut_branch": { + "rule_text": "(of A0 (mono A3)) :- (of A0 (all A1 A2)), (specialize (all A1 A2) A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 21, + "column": 0, + "character": 368 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (lam c0 \\ c0) (mono X4)", + "goal_id": 17 + }, + "cut_branch": { + "rule_text": "(of A0 (mono A2)) :- (not err), !, (err => of A0 (mono A1)), \n (assert A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 163, + "column": 0, + "character": 4507 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (lam c0 \\ c0) (mono X4)", + "goal_id": 17 + }, + "cut_branch": { + "rule_text": "(of A0 (mono _)) :- (print KO: term ( A0 ) has no type\n), halt.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 164, + "column": 0, + "character": 4578 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (let (lam c0 \\ c0) X1 c0 \\ app c0 (global [])) X2", + "goal_id": 10 + }, + "cut_branch": { + "rule_text": "(of A0 (mono A3)) :- (of A0 (all A1 A2)), (specialize (all A1 A2) A3).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/hm.elpi", + "line": 21, + "column": 0, + "character": 368 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (let (lam c0 \\ c0) X1 c0 \\ app c0 (global [])) X2", + "goal_id": 10 + }, + "cut_branch": { + "rule_text": "(of A0 (mono A2)) :- (not err), !, (err => of A0 (mono A1)), \n (assert A0 A1 A2).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 163, + "column": 0, + "character": 4507 + } + ] + } + }, + { + "cut_branch_for_goal": { + "goal_text": "of (let (lam c0 \\ c0) X1 c0 \\ app c0 (global [])) X2", + "goal_id": 10 + }, + "cut_branch": { + "rule_text": "(of A0 (mono _)) :- (print KO: term ( A0 ) has no type\n), halt.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 164, + "column": 0, + "character": 4578 + } + ] + } + } + ] + } + ], + "color": "Grey" + }, + { + "step_id": 32, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 12, + "current_goal_text": "print\n (let (lam c0 \\ c0) (all any c0 \\ mono (c0 ===> c0)) c0 \\ app c0 (global [])) \n : (mono (list X16))", + "current_goal_predicate": "print", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "print", + "kind": "FFI", + "payload": [] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "print", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 32, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + }, + { + "step_id": 33, + "runtime_id": 0, + "step": [ + "Inference", + { + "current_goal_id": 13, + "current_goal_text": "print", + "current_goal_predicate": "print", + "failed_attempts": [], + "successful_attempts": [ + { + "attempt": { + "rule": [ + "BuiltinRule", + { + "name": "print", + "kind": "FFI", + "payload": [] + } + ], + "events": [] + }, + "siblings": [], + "siblings_aggregated_outcome": "Success" + } + ], + "more_successful_attempts": [], + "more_failing_attempts": [], + "stack": [ + { + "rule": [ + "BuiltinRule", + { + "name": "print", + "kind": "FFI", + "payload": [] + } + ], + "step_id": 33, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print.", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 167, + "column": 0, + "character": 4665 + } + ] + } + ], + "step_id": 4, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "(tests [A0]) :- (test A0 A1), (typecheck A1).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 175, + "column": 0, + "character": 4785 + } + ] + } + ], + "step_id": 2, + "runtime_id": 0 + }, + { + "rule": [ + "UserRule", + { + "rule_text": "main :- (tests [2]).", + "rule_loc": [ + "File", + { + "filename": "tests/sources/trace-w/main.elpi", + "line": 177, + "column": 0, + "character": 4824 + } + ] + } + ], + "step_id": 1, + "runtime_id": 0 + } + ] + } + ], + "color": "Green" + } +] \ No newline at end of file diff --git a/src/tests/sources/trace_w.json b/src/tests/sources/trace_w.json new file mode 100644 index 0000000..e225fa1 --- /dev/null +++ b/src/tests/sources/trace_w.json @@ -0,0 +1,623 @@ +{"step" : 0,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["main","main"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 177, column 0, characters 4824-4843:"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 177, column 0, characters 4824-4843:","main :- (tests [2])."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 4,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["5"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["tests [2]"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["tests","tests [2]"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 175, column 0, characters 4785-4821:"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 175, column 0, characters 4785-4821:","(tests [A0]) :- (test A0 A1), (typecheck A1)."]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := 2"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 5,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["6"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["test 2 X0"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["7"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["typecheck X0"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["test","test 2 X0"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 184, column 0, characters 4948-5011:"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 184, column 0, characters 4948-5011:","(test 2 (let (lam (c0 \\ c0)) A0 (c0 \\ (app c0 (global []))))) :- ."]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X0 := let (lam c0 \\ c0) X1 c0 \\ app c0 (global [])"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 6,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["typecheck","typecheck (let (lam c0 \\ c0) X1 c0 \\ app c0 (global []))"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 167, column 0, characters 4665-4756:"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 167, column 0, characters 4665-4756:","(typecheck A0) :- (print Checking: A0), (theta []), (of A0 A1), !, \n (print A0 : A1), print."]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := let (lam c0 \\ c0) X1 c0 \\ app c0 (global [])"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 7,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["8"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["print Checking: (let (lam c0 \\ c0) X1 c0 \\ app c0 (global []))"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["9"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["theta []"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["10"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["of (let (lam c0 \\ c0) X1 c0 \\ app c0 (global [])) X2"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["11"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["12"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["print (let (lam c0 \\ c0) X1 c0 \\ app c0 (global [])) : X2"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["13"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["print"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["print","print Checking: (let (lam c0 \\ c0) X1 c0 \\ app c0 (global []))"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["print"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 8,"runtime_id" : 0,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["theta","theta []"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 76, column 0, characters 1782-1821:"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 76, column 0, characters 1782-1821:","(theta A0) :- (new_constraint (theta A0) [_])."]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 9,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["14"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["new_constraint (theta []) [_]"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["new_constraint","new_constraint (theta []) [_]"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 158, column 0, characters 4374-4418:"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 158, column 0, characters 4374-4418:","(new_constraint A0 A1) :- (declare_constraint A0 A1)."]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := theta []"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A1 := [_]"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 14,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["15"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["declare_constraint (theta []) [_]"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["declare_constraint","declare_constraint (theta []) [_]"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["declare_constraint"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["16"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 16,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["theta []"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 15,"runtime_id" : 0,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["of","of (let (lam c0 \\ c0) X1 c0 \\ app c0 (global [])) X2"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/hm.elpi\", line 11, column 0, characters 177-284:","File \"tests/sources/trace-w/hm.elpi\", line 21, column 0, characters 368-429:","File \"tests/sources/trace-w/main.elpi\", line 163, column 0, characters 4507-4576:","File \"tests/sources/trace-w/main.elpi\", line 164, column 0, characters 4578-4639:"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/hm.elpi\", line 11, column 0, characters 177-284:","(of (let A0 A2 A3) (mono A4)) :- (of A0 (mono A1)), (gammabar (mono A1) A2), \n (pi c0 \\ (of c0 A2 => of (A3 c0) (mono A4)))."]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := lam c0 \\ c0"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A2 := X1"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A3 := c0 \\\napp c0 (global [])"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X2 := mono X3"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 10,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["17"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["of (lam c0 \\ c0) (mono X4)"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["18"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["gammabar (mono X4) X1"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["19"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 19,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["pi c0 \\ of c0 X1 => of (app c0 (global [])) (mono X3)"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["of","of (lam c0 \\ c0) (mono X4)"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/hm.elpi\", line 8, column 0, characters 100-174:","File \"tests/sources/trace-w/hm.elpi\", line 21, column 0, characters 368-429:","File \"tests/sources/trace-w/main.elpi\", line 163, column 0, characters 4507-4576:","File \"tests/sources/trace-w/main.elpi\", line 164, column 0, characters 4578-4639:"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/hm.elpi\", line 8, column 0, characters 100-174:","(of (lam A0) (mono (A2 ===> A1))) :- (pi c0 \\\n (of c0 (mono A2) =>\n of (A0 c0) (mono A1)))."]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := c0 \\\nc0"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X4 := X5 ===> X6"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 17,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["20"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["pi c0 \\ of c0 (mono X5) => of c0 (mono X6)"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["pi","pi c0 \\ of c0 (mono X5) => of c0 (mono X6)"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 0,"name" : "user:rule","payload" : ["pi"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 20,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["21"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 21,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["of c0 (mono X5) => of c0 (mono X6)"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 21,"runtime_id" : 0,"name" : "user:rule:pi","payload" : ["success"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 21,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=>","of c0 (mono X5) => of c0 (mono X6)"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 21,"runtime_id" : 0,"name" : "user:rule","payload" : ["implication"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 21,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["22"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["of c0 (mono X6)"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 0,"name" : "user:new-hyps","payload" : ["(of c0 (mono X5)) :- ."]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 0,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["of","of c0 (mono X6)"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:12)\", line 1, column 0, characters 0-0:","File \"tests/sources/trace-w/hm.elpi\", line 21, column 0, characters 368-429:","File \"tests/sources/trace-w/main.elpi\", line 163, column 0, characters 4507-4576:","File \"tests/sources/trace-w/main.elpi\", line 164, column 0, characters 4578-4639:"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:12)\", line 1, column 0, characters 0-0:","(of c0 (mono X5)) :- ."]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X6 := X5"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 22,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["gammabar","gammabar (mono (X5 ===> X5)) X1"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 81, column 0, characters 1900-1967:"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 81, column 0, characters 1900-1967:","(gammabar (mono A0) A1) :- (new_constraint (gammabar (mono A0) A1) [_])."]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := X5 ===> X5"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A1 := X1"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 18,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["23"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["new_constraint (gammabar (mono (X5 ===> X5)) X1) [_]"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["new_constraint","new_constraint (gammabar (mono (X5 ===> X5)) X1) [_]"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 158, column 0, characters 4374-4418:"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 158, column 0, characters 4374-4418:","(new_constraint A0 A1) :- (declare_constraint A0 A1)."]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := gammabar (mono (X5 ===> X5)) X1"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A1 := [_]"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 23,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["24"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 24,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["declare_constraint (gammabar (mono (X5 ===> X5)) X1) [_]"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 24,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 24,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["declare_constraint","declare_constraint (gammabar (mono (X5 ===> X5)) X1) [_]"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 24,"runtime_id" : 0,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 24,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["declare_constraint"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 24,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["25"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 25,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["gammabar (mono (X5 ===> X5)) X1"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 24,"runtime_id" : 0,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 25,"runtime_id" : 0,"name" : "user:CHR:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 85, column 36, characters 2027-2199:","(theta A0) \\ (A1 ?- gammabar A2 A3) | (generalize A0 A1 A2 A4) <=> (A3 = A4)"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X0 := []"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X1 := mono (uvar frozen--452 [] ===> uvar frozen--452 [])"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A3 := uvar frozen--453 []"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X2 := []"]} +{"step" : 0,"kind" : ["Info"],"goal_id" : 26,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["generalize [] [] (mono (uvar frozen--452 [] ===> uvar frozen--452 [])) X3"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 26,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["generalize","generalize [] [] (mono (uvar frozen--452 [] ===> uvar frozen--452 [])) X3"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 26,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 26,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 97, column 0, characters 2346-2521:"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 26,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 97, column 0, characters 2346-2521:","(generalize A5 A2 (mono A0) A6) :- (free-ty (mono A0) [] A1), \n (free-gamma A2 [] A3), (filter A1 (c0 \\ (not (mem A3 c0))) A4), \n (bind A4 A5 A0 A6)."]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A5 := []"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A2 := []"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := uvar frozen--452 [] ===> uvar frozen--452 []"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A6 := X3"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 26,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["27"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 27,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["free-ty (mono (uvar frozen--452 [] ===> uvar frozen--452 [])) [] X4"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 27,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["28"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 28,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["free-gamma [] [] X5"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 27,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["29"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 29,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["filter X4 (c0 \\ not (mem X5 c0)) X6"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 27,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["30"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 30,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["bind X6 [] (uvar frozen--452 [] ===> uvar frozen--452 []) X3"]} +{"step" : 1,"kind" : ["Info"],"goal_id" : 27,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 27,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["free-ty","free-ty (mono (uvar frozen--452 [] ===> uvar frozen--452 [])) [] X4"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 27,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 27,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 105, column 0, characters 2637-2673:"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 27,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 105, column 0, characters 2637-2673:","(free-ty (mono A0) A1 A2) :- (free A0 A1 A2)."]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := uvar frozen--452 [] ===> uvar frozen--452 []"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A2 := X4"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 27,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["31"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 31,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["free (uvar frozen--452 [] ===> uvar frozen--452 []) [] X4"]} +{"step" : 2,"kind" : ["Info"],"goal_id" : 31,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 31,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["free","free (uvar frozen--452 [] ===> uvar frozen--452 []) [] X4"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 31,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 31,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 117, column 0, characters 3023-3072:"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 31,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 117, column 0, characters 3023-3072:","(free (A0 ===> A3) A1 A4) :- (free A0 A1 A2), (free A3 A2 A4)."]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := uvar frozen--452 []"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A3 := uvar frozen--452 []"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A1 := []"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A4 := X4"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 31,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["32"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 32,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["free (uvar frozen--452 []) [] X7"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 32,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["33"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 33,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["free (uvar frozen--452 []) X7 X4"]} +{"step" : 3,"kind" : ["Info"],"goal_id" : 32,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 32,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["free","free (uvar frozen--452 []) [] X7"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 32,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 32,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 118, column 0, characters 3074-3137:"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 32,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 118, column 0, characters 3074-3137:","(free (as (uvar _ _) A1) A0 A2) :- (if (mem A0 A1) (A2 = A0) (A2 = [A1 | A0]))."]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A1 := uvar frozen--452 []"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A2 := X7"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 32,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["34"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["if (mem [] (uvar frozen--452 [])) (X7 = []) (X7 = [uvar frozen--452 []])"]} +{"step" : 4,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["if","if (mem [] (uvar frozen--452 [])) (X7 = []) (X7 = [uvar frozen--452 []])"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 536, column 0, characters 13939-13958:","File \"builtin.elpi\", line 537, column 0, characters 13960-13973:"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 536, column 0, characters 13939-13958:","(if A0 A1 _) :- A0, !, A1."]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := mem [] (uvar frozen--452 [])"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A1 := X7 = []"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["35"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 35,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["mem [] (uvar frozen--452 [])"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 35,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["36"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 36,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 35,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["37"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 37,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["X7 = []"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 35,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 35,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["mem","mem [] (uvar frozen--452 [])"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 35,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 35,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 148, column 0, characters 4032-4074:"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 35,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 148, column 0, characters 4032-4074:","(mem A0 (uvar A1 _)) :- (mem! A0 (uvar A1 A2))."]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A1 := frozen--452"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 35,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["38"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 38,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["mem! [] (uvar frozen--452 X8)"]} +{"step" : 6,"kind" : ["Info"],"goal_id" : 38,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 38,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["mem!","mem! [] (uvar frozen--452 X8)"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 38,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 7,"kind" : ["Info"],"goal_id" : 38,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 7,"kind" : ["Info"],"goal_id" : 38,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["if","if (mem [] (uvar frozen--452 [])) (X7 = []) (X7 = [uvar frozen--452 []])"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 537, column 0, characters 13960-13973:"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 537, column 0, characters 13960-13973:","(if _ _ A0) :- A0."]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := X7 = [uvar frozen--452 []]"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["39"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 39,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["X7 = [uvar frozen--452 []]"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 39,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 39,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["=","X7 = [uvar frozen--452 []]"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 39,"runtime_id" : 1,"name" : "user:rule","payload" : ["eq"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 39,"runtime_id" : 1,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X7 := [uvar frozen--452 []]"]} +{"step" : 9,"kind" : ["Info"],"goal_id" : 39,"runtime_id" : 1,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 33,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["free","free (uvar frozen--452 []) [uvar frozen--452 []] X4"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 33,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 33,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 118, column 0, characters 3074-3137:"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 33,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 118, column 0, characters 3074-3137:","(free (as (uvar _ _) A1) A0 A2) :- (if (mem A0 A1) (A2 = A0) (A2 = [A1 | A0]))."]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A1 := uvar frozen--452 []"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := [uvar frozen--452 []]"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A2 := X4"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 33,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["40"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 40,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["if (mem [uvar frozen--452 []] (uvar frozen--452 [])) \n (X4 = [uvar frozen--452 []]) \n (X4 = [uvar frozen--452 [], uvar frozen--452 []])"]} +{"step" : 10,"kind" : ["Info"],"goal_id" : 40,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 40,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["if","if (mem [uvar frozen--452 []] (uvar frozen--452 [])) \n (X4 = [uvar frozen--452 []]) \n (X4 = [uvar frozen--452 [], uvar frozen--452 []])"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 40,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 40,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 536, column 0, characters 13939-13958:","File \"builtin.elpi\", line 537, column 0, characters 13960-13973:"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 40,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 536, column 0, characters 13939-13958:","(if A0 A1 _) :- A0, !, A1."]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := mem [uvar frozen--452 []] (uvar frozen--452 [])"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A1 := X4 = [uvar frozen--452 []]"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 40,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["41"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 41,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["mem [uvar frozen--452 []] (uvar frozen--452 [])"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 41,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["42"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 42,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 41,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["43"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 43,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["X4 = [uvar frozen--452 []]"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 41,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 41,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["mem","mem [uvar frozen--452 []] (uvar frozen--452 [])"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 41,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 41,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 148, column 0, characters 4032-4074:"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 41,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 148, column 0, characters 4032-4074:","(mem A0 (uvar A1 _)) :- (mem! A0 (uvar A1 A2))."]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := [uvar frozen--452 []]"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A1 := frozen--452"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 41,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["44"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 44,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["mem! [uvar frozen--452 []] (uvar frozen--452 X9)"]} +{"step" : 12,"kind" : ["Info"],"goal_id" : 44,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 44,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["mem!","mem! [uvar frozen--452 []] (uvar frozen--452 X9)"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 44,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 44,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 143, column 0, characters 3903-3920:","File \"tests/sources/trace-w/main.elpi\", line 144, column 0, characters 3922-3948:"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 44,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 143, column 0, characters 3903-3920:","(mem! [A0 | _] A0) :- !."]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := uvar frozen--452 []"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X9 := []"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 44,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["45"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 45,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 13,"kind" : ["Info"],"goal_id" : 45,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 45,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 45,"runtime_id" : 1,"name" : "user:rule","payload" : ["cut"]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:rule:cut:branch","payload" : ["44","File \"tests/sources/trace-w/main.elpi\", line 144, column 0, characters 3922-3948:","(mem! [_ | A0] A1) :- (mem! A0 A1)."]} +{"step" : 14,"kind" : ["Info"],"goal_id" : 45,"runtime_id" : 1,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 42,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 42,"runtime_id" : 1,"name" : "user:rule","payload" : ["cut"]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:rule:cut:branch","payload" : ["40","File \"builtin.elpi\", line 537, column 0, characters 13960-13973:","(if _ _ A0) :- A0."]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 42,"runtime_id" : 1,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 43,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["=","X4 = [uvar frozen--452 []]"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 43,"runtime_id" : 1,"name" : "user:rule","payload" : ["eq"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 43,"runtime_id" : 1,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X4 := [uvar frozen--452 []]"]} +{"step" : 16,"kind" : ["Info"],"goal_id" : 43,"runtime_id" : 1,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 28,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["free-gamma","free-gamma [] [] X5"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 28,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 28,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 109, column 0, characters 2781-2798:"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 28,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 109, column 0, characters 2781-2798:","(free-gamma [] A0 A0) :- ."]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X5 := []"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 28,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 29,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["filter","filter [uvar frozen--452 []] (c0 \\ not (mem [] c0)) X6"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 29,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 29,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 139, column 0, characters 3789-3837:","File \"tests/sources/trace-w/main.elpi\", line 140, column 0, characters 3839-3875:"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 29,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 139, column 0, characters 3789-3837:","(filter [A0 | A2] A1 [A0 | A3]) :- (A1 A0), !, (filter A2 A1 A3)."]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := uvar frozen--452 []"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A2 := []"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A1 := c0 \\\nnot (mem [] c0)"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X6 := [uvar frozen--452 [] | X10]"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 29,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["46"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 46,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["not (mem [] (uvar frozen--452 []))"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 46,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["47"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 47,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 46,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["48"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 48,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["filter [] (c0 \\ not (mem [] c0)) X10"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 46,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 46,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["not","not (mem [] (uvar frozen--452 []))"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 46,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 46,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 69, column 0, characters 1189-1208:","File \"builtin.elpi\", line 71, column 0, characters 1211-1216:"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 46,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 69, column 0, characters 1189-1208:","(not A0) :- A0, !, fail."]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := mem [] (uvar frozen--452 [])"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 46,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["49"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 49,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["mem [] (uvar frozen--452 [])"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 49,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["50"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 50,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 49,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["51"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 51,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["fail"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 49,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 49,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["mem","mem [] (uvar frozen--452 [])"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 49,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 49,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 148, column 0, characters 4032-4074:"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 49,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 148, column 0, characters 4032-4074:","(mem A0 (uvar A1 _)) :- (mem! A0 (uvar A1 A2))."]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A1 := frozen--452"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 49,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["52"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 52,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["mem! [] (uvar frozen--452 X11)"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 52,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 52,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["mem!","mem! [] (uvar frozen--452 X11)"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 52,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 52,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 21,"kind" : ["Info"],"goal_id" : 52,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 46,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["not","not (mem [] (uvar frozen--452 []))"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 46,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 46,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 71, column 0, characters 1211-1216:"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 46,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 71, column 0, characters 1211-1216:","(not _) :- ."]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 46,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 47,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 47,"runtime_id" : 1,"name" : "user:rule","payload" : ["cut"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:rule:cut:branch","payload" : ["29","File \"tests/sources/trace-w/main.elpi\", line 140, column 0, characters 3839-3875:","(filter [_ | A0] A1 A2) :- (filter A0 A1 A2)."]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 47,"runtime_id" : 1,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 48,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["filter","filter [] (c0 \\ not (mem [] c0)) X10"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 48,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 48,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 138, column 0, characters 3773-3787:"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 48,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 138, column 0, characters 3773-3787:","(filter [] _ []) :- ."]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X10 := []"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 48,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 30,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["bind","bind [uvar frozen--452 []] [] (uvar frozen--452 [] ===> uvar frozen--452 []) \n X3"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 30,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 30,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 123, column 0, characters 3297-3418:"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 30,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 123, column 0, characters 3297-3418:","(bind [A1 | A3] A0 A4 (all A2 (c0 \\ (A5 c0)))) :- (if (mem A0 A1) (A2 = eqt) \n (A2 = any)), \n (pi c0 \\ (copy A1 c0 => bind A3 A0 A4 (A5 c0)))."]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A1 := uvar frozen--452 []"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A3 := []"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A4 := uvar frozen--452 [] ===> uvar frozen--452 []"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X3 := all X12 c0 \\ X13 c0"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 30,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["53"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["if (mem [] (uvar frozen--452 [])) (X12 = eqt) (X12 = any)"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["54"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 54,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["pi c0 \\\n copy (uvar frozen--452 []) c0 =>\n bind [] [] (uvar frozen--452 [] ===> uvar frozen--452 []) (X13 c0)"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["if","if (mem [] (uvar frozen--452 [])) (X12 = eqt) (X12 = any)"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 536, column 0, characters 13939-13958:","File \"builtin.elpi\", line 537, column 0, characters 13960-13973:"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 536, column 0, characters 13939-13958:","(if A0 A1 _) :- A0, !, A1."]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := mem [] (uvar frozen--452 [])"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A1 := X12 = eqt"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["55"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 55,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["mem [] (uvar frozen--452 [])"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 55,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["56"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 56,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["!"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 55,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["57"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 57,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["X12 = eqt"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 55,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 55,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["mem","mem [] (uvar frozen--452 [])"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 55,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 55,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 148, column 0, characters 4032-4074:"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 55,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 148, column 0, characters 4032-4074:","(mem A0 (uvar A1 _)) :- (mem! A0 (uvar A1 A2))."]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := []"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A1 := frozen--452"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 55,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["58"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 58,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["mem! [] (uvar frozen--452 X14)"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 58,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 58,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["mem!","mem! [] (uvar frozen--452 X14)"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 58,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 58,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : []} +{"step" : 28,"kind" : ["Info"],"goal_id" : 58,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["fail"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["if","if (mem [] (uvar frozen--452 [])) (X12 = eqt) (X12 = any)"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 537, column 0, characters 13960-13973:"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 537, column 0, characters 13960-13973:","(if _ _ A0) :- A0."]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := X12 = any"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["59"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 59,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["X12 = any"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 59,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 59,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["=","X12 = any"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 59,"runtime_id" : 1,"name" : "user:rule","payload" : ["eq"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 59,"runtime_id" : 1,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X12 := any"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 59,"runtime_id" : 1,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 54,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["pi","pi c0 \\\n copy (uvar frozen--452 []) c0 =>\n bind [] [] (uvar frozen--452 [] ===> uvar frozen--452 []) (X13 c0)"]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 54,"runtime_id" : 1,"name" : "user:rule","payload" : ["pi"]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 54,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["60"]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 60,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["copy (uvar frozen--452 []) c0 =>\n bind [] [] (uvar frozen--452 [] ===> uvar frozen--452 []) (X13 c0)"]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 60,"runtime_id" : 1,"name" : "user:rule:pi","payload" : ["success"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 60,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["=>","copy (uvar frozen--452 []) c0 =>\n bind [] [] (uvar frozen--452 [] ===> uvar frozen--452 []) (X13 c0)"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 60,"runtime_id" : 1,"name" : "user:rule","payload" : ["implication"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 60,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["61"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 61,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["bind [] [] (uvar frozen--452 [] ===> uvar frozen--452 []) (X13 c0)"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 61,"runtime_id" : 1,"name" : "user:new-hyps","payload" : ["(copy (uvar frozen--452 []) c0) :- ."]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 61,"runtime_id" : 1,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 61,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["bind","bind [] [] (uvar frozen--452 [] ===> uvar frozen--452 []) (X13 c0)"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 61,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 61,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 122, column 0, characters 3261-3295:"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 61,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 122, column 0, characters 3261-3295:","(bind [] _ A0 (mono A1)) :- (copy A0 A1)."]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := uvar frozen--452 [] ===> uvar frozen--452 []"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign:simplify:heap","payload" : ["X13 := c0 \\\nX15 c0"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X15^1 := mono X16^1"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 61,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["62"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 62,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["copy (uvar frozen--452 [] ===> uvar frozen--452 []) X16^1"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 62,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 62,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["copy","copy (uvar frozen--452 [] ===> uvar frozen--452 []) X16^1"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 62,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 62,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 130, column 0, characters 3475-3527:"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 62,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 130, column 0, characters 3475-3527:","(copy (A0 ===> A2) (A1 ===> A3)) :- (copy A0 A1), (copy A2 A3)."]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := uvar frozen--452 []"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A2 := uvar frozen--452 []"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X16^1 := X17^1 ===> X18^1"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 62,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["63"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 63,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["copy (uvar frozen--452 []) X17^1"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 63,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["64"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 64,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["copy (uvar frozen--452 []) X18^1"]} +{"step" : 34,"kind" : ["Info"],"goal_id" : 63,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 35,"kind" : ["Info"],"goal_id" : 63,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["copy","copy (uvar frozen--452 []) X17^1"]} +{"step" : 35,"kind" : ["Info"],"goal_id" : 63,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 35,"kind" : ["Info"],"goal_id" : 63,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:32)\", line 1, column 0, characters 0-0:","File \"tests/sources/trace-w/main.elpi\", line 133, column 0, characters 3621-3647:"]} +{"step" : 35,"kind" : ["Info"],"goal_id" : 63,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:32)\", line 1, column 0, characters 0-0:","(copy (uvar frozen--452 []) c0) :- ."]} +{"step" : 35,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X17^1 := c0"]} +{"step" : 35,"kind" : ["Info"],"goal_id" : 63,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 64,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["copy","copy (uvar frozen--452 []) X18^1"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 64,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 64,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:32)\", line 1, column 0, characters 0-0:","File \"tests/sources/trace-w/main.elpi\", line 133, column 0, characters 3621-3647:"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 64,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:32)\", line 1, column 0, characters 0-0:","(copy (uvar frozen--452 []) c0) :- ."]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["X18^1 := c0"]} +{"step" : 36,"kind" : ["Info"],"goal_id" : 64,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 25,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["65"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 65,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["_ => X1 = all any c0 \\ mono (c0 ===> c0)"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 25,"runtime_id" : 0,"name" : "user:CHR:rule-fired","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 85, column 36, characters 2027-2199:"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 25,"runtime_id" : 0,"name" : "user:CHR:rule-remove-constraints","payload" : ["25"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:CHR:store:before","payload" : ["25"," gammabar (mono (X5 ===> X5)) X1 /* suspended on X7 */"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:CHR:store:before","payload" : ["16"," theta [] /* suspended on X7 */"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:CHR:store:after","payload" : ["16"," theta [] /* suspended on X7 */"]} +{"step" : 17,"kind" : ["Info"],"goal_id" : 65,"runtime_id" : 0,"name" : "user:CHR:resumed","payload" : ["_ => X1 = all any c0 \\ mono (c0 ===> c0)"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 65,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=>","_ => X1 = all any c0 \\ mono (c0 ===> c0)"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 65,"runtime_id" : 0,"name" : "user:rule","payload" : ["implication"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 65,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["66"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 66,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["X1 = all any c0 \\ mono (c0 ===> c0)"]} +{"step" : 18,"kind" : ["Info"],"goal_id" : 66,"runtime_id" : 0,"name" : "user:new-hyps","payload" : []} +{"step" : 18,"kind" : ["Info"],"goal_id" : 66,"runtime_id" : 0,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 66,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=","X1 = all any c0 \\ mono (c0 ===> c0)"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 66,"runtime_id" : 0,"name" : "user:rule","payload" : ["eq"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 66,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["="]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X1 := all any c0 \\ mono (c0 ===> c0)"]} +{"step" : 19,"kind" : ["Info"],"goal_id" : 66,"runtime_id" : 0,"name" : "user:rule:eq","payload" : ["success"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 19,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["pi","pi c0 \\\n of c0 (all any c1 \\ mono (c1 ===> c1)) => of (app c0 (global [])) (mono X3)"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 19,"runtime_id" : 0,"name" : "user:rule","payload" : ["pi"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 19,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["67"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 67,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["of c0 (all any c1 \\ mono (c1 ===> c1)) => of (app c0 (global [])) (mono X3)"]} +{"step" : 20,"kind" : ["Info"],"goal_id" : 67,"runtime_id" : 0,"name" : "user:rule:pi","payload" : ["success"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 67,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["=>","of c0 (all any c1 \\ mono (c1 ===> c1)) => of (app c0 (global [])) (mono X3)"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 67,"runtime_id" : 0,"name" : "user:rule","payload" : ["implication"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 67,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["68"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 68,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["of (app c0 (global [])) (mono X3)"]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 68,"runtime_id" : 0,"name" : "user:new-hyps","payload" : ["(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- ."]} +{"step" : 21,"kind" : ["Info"],"goal_id" : 68,"runtime_id" : 0,"name" : "user:rule:implication","payload" : ["success"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 68,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["of","of (app c0 (global [])) (mono X3)"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 68,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 68,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/hm.elpi\", line 4, column 0, characters 31-97:","File \"tests/sources/trace-w/hm.elpi\", line 21, column 0, characters 368-429:","File \"tests/sources/trace-w/main.elpi\", line 163, column 0, characters 4507-4576:","File \"tests/sources/trace-w/main.elpi\", line 164, column 0, characters 4578-4639:"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 68,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/hm.elpi\", line 4, column 0, characters 31-97:","(of (app A0 A3) (mono A2)) :- (of A0 (mono (A1 ===> A2))), (of A3 (mono A1))."]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A3 := global []"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A2 := X3"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 68,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["69"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 69,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["of c0 (mono (X8^1 ===> X3))"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 69,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["70"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["of (global []) (mono X8^1)"]} +{"step" : 22,"kind" : ["Info"],"goal_id" : 69,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 69,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["of","of c0 (mono (X8^1 ===> X3))"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 69,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 69,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:21)\", line 1, column 0, characters 0-0:","File \"tests/sources/trace-w/hm.elpi\", line 21, column 0, characters 368-429:","File \"tests/sources/trace-w/main.elpi\", line 163, column 0, characters 4507-4576:","File \"tests/sources/trace-w/main.elpi\", line 164, column 0, characters 4578-4639:"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 69,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:21)\", line 1, column 0, characters 0-0:","(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- ."]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 69,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["unify mono (X8^1 ===> X3) with all any c1 \\ mono (c1 ===> c1)"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 69,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/hm.elpi\", line 21, column 0, characters 368-429:","(of A0 (mono A3)) :- (of A0 (all A1 A2)), (specialize (all A1 A2) A3)."]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := c0"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A3 := X8^1 ===> X3"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 69,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["71"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 71,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["of c0 (all X9^1 X10^1)"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 71,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["72"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 72,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["specialize (all X9^1 X10^1) (X8^1 ===> X3)"]} +{"step" : 23,"kind" : ["Info"],"goal_id" : 71,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 71,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["of","of c0 (all X9^1 X10^1)"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 71,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 71,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"(context step_id:21)\", line 1, column 0, characters 0-0:","File \"tests/sources/trace-w/hm.elpi\", line 21, column 0, characters 368-429:","File \"tests/sources/trace-w/main.elpi\", line 163, column 0, characters 4507-4576:","File \"tests/sources/trace-w/main.elpi\", line 164, column 0, characters 4578-4639:"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 71,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"(context step_id:21)\", line 1, column 0, characters 0-0:","(of c0 (all any (c1 \\ (mono (c1 ===> c1))))) :- ."]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X9^1 := any"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X10^1 := c1 \\\nmono (c1 ===> c1)"]} +{"step" : 24,"kind" : ["Info"],"goal_id" : 71,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 72,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["specialize","specialize (all any c1 \\ mono (c1 ===> c1)) (X8^1 ===> X3)"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 72,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 72,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 57, column 0, characters 1282-1333:","File \"tests/sources/trace-w/main.elpi\", line 58, column 0, characters 1335-1398:"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 72,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 57, column 0, characters 1282-1333:","(specialize (all any A1) A2) :- (specialize (A1 A0) A2)."]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A1 := c1 \\\nmono (c1 ===> c1)"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A2 := X8^1 ===> X3"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 72,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["73"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 73,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["specialize (mono (X11^1 ===> X11^1)) (X8^1 ===> X3)"]} +{"step" : 25,"kind" : ["Info"],"goal_id" : 73,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 73,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["specialize","specialize (mono (X11^1 ===> X11^1)) (X8^1 ===> X3)"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 73,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 73,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 56, column 0, characters 1259-1280:"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 73,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 56, column 0, characters 1259-1280:","(specialize (mono A0) A0) :- ."]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := X11^1 ===> X11^1"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X11 c0 := X8 c0"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X8 c0 := X3"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 73,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["of","of (global []) (mono X3)"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 38, column 0, characters 656-687:","File \"tests/sources/trace-w/main.elpi\", line 39, column 0, characters 689-720:","File \"tests/sources/trace-w/main.elpi\", line 40, column 0, characters 722-753:","File \"tests/sources/trace-w/main.elpi\", line 41, column 0, characters 755-806:","File \"tests/sources/trace-w/main.elpi\", line 43, column 0, characters 809-855:","File \"tests/sources/trace-w/main.elpi\", line 44, column 0, characters 857-922:","File \"tests/sources/trace-w/main.elpi\", line 45, column 0, characters 924-979:","File \"tests/sources/trace-w/main.elpi\", line 46, column 0, characters 981-1039:","File \"tests/sources/trace-w/main.elpi\", line 48, column 0, characters 1042-1117:","File \"tests/sources/trace-w/hm.elpi\", line 21, column 0, characters 368-429:","File \"tests/sources/trace-w/main.elpi\", line 163, column 0, characters 4507-4576:","File \"tests/sources/trace-w/main.elpi\", line 164, column 0, characters 4578-4639:"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 38, column 0, characters 656-687:","(of (global 1) (mono int)) :- ."]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["match global [] with global 1"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 39, column 0, characters 689-720:","(of (global 2) (mono int)) :- ."]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["match global [] with global 2"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 40, column 0, characters 722-753:","(of (global 3) (mono int)) :- ."]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["match global [] with global 3"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 41, column 0, characters 755-806:","(of (global plus) (mono (int ===> int ===> int))) :- ."]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["match global [] with global plus"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 43, column 0, characters 809-855:","(of (global []) (all any (c0 \\ (mono (list c0))))) :- ."]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["unify mono X3 with all any c0 \\ mono (list c0)"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 44, column 0, characters 857-922:","(of (global ::) (all any (c0 \\ (mono (c0 ===> list c0 ===> list c0))))) :- ."]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["match global [] with global ::"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 45, column 0, characters 924-979:","(of (global size) (all any (c0 \\ (mono (list c0 ===> int))))) :- ."]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["match global [] with global size"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 46, column 0, characters 981-1039:","(of (global undup) (all eqt (c0 \\ (mono (list c0 ===> list c0))))) :- ."]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["match global [] with global undup"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 48, column 0, characters 1042-1117:","(of (global ,) \n (all any (c0 \\ (all any (c1 \\ (mono (c0 ===> c1 ===> pair c0 c1))))))) :- ."]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["match global [] with global ,"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/hm.elpi\", line 21, column 0, characters 368-429:","(of A0 (mono A3)) :- (of A0 (all A1 A2)), (specialize (all A1 A2) A3)."]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := global []"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A3 := X3"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 70,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["74"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 74,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["of (global []) (all X12^1 X13^1)"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 74,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["75"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 75,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["specialize (all X12^1 X13^1) X3"]} +{"step" : 27,"kind" : ["Info"],"goal_id" : 74,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 74,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["of","of (global []) (all X12^1 X13^1)"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 74,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 74,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 38, column 0, characters 656-687:","File \"tests/sources/trace-w/main.elpi\", line 39, column 0, characters 689-720:","File \"tests/sources/trace-w/main.elpi\", line 40, column 0, characters 722-753:","File \"tests/sources/trace-w/main.elpi\", line 41, column 0, characters 755-806:","File \"tests/sources/trace-w/main.elpi\", line 43, column 0, characters 809-855:","File \"tests/sources/trace-w/main.elpi\", line 44, column 0, characters 857-922:","File \"tests/sources/trace-w/main.elpi\", line 45, column 0, characters 924-979:","File \"tests/sources/trace-w/main.elpi\", line 46, column 0, characters 981-1039:","File \"tests/sources/trace-w/main.elpi\", line 48, column 0, characters 1042-1117:","File \"tests/sources/trace-w/hm.elpi\", line 21, column 0, characters 368-429:","File \"tests/sources/trace-w/main.elpi\", line 163, column 0, characters 4507-4576:","File \"tests/sources/trace-w/main.elpi\", line 164, column 0, characters 4578-4639:"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 74,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 38, column 0, characters 656-687:","(of (global 1) (mono int)) :- ."]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 74,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["match global [] with global 1"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 74,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 39, column 0, characters 689-720:","(of (global 2) (mono int)) :- ."]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 74,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["match global [] with global 2"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 74,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 40, column 0, characters 722-753:","(of (global 3) (mono int)) :- ."]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 74,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["match global [] with global 3"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 74,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 41, column 0, characters 755-806:","(of (global plus) (mono (int ===> int ===> int))) :- ."]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 74,"runtime_id" : 0,"name" : "user:backchain:fail-to","payload" : ["match global [] with global plus"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 74,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 43, column 0, characters 809-855:","(of (global []) (all any (c0 \\ (mono (list c0))))) :- ."]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X12^1 := any"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X13^1 := c1 \\\nmono (list c1)"]} +{"step" : 28,"kind" : ["Info"],"goal_id" : 74,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 75,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["specialize","specialize (all any c1 \\ mono (list c1)) X3"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 75,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 75,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 57, column 0, characters 1282-1333:","File \"tests/sources/trace-w/main.elpi\", line 58, column 0, characters 1335-1398:"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 75,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 57, column 0, characters 1282-1333:","(specialize (all any A1) A2) :- (specialize (A1 A0) A2)."]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A1 := c1 \\\nmono (list c1)"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A2 := X3"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 75,"runtime_id" : 0,"name" : "user:subgoal","payload" : ["76"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 76,"runtime_id" : 0,"name" : "user:newgoal","payload" : ["specialize (mono (list X14^1)) X3"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 76,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 76,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["specialize","specialize (mono (list X14^1)) X3"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 76,"runtime_id" : 0,"name" : "user:rule","payload" : ["backchain"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 76,"runtime_id" : 0,"name" : "user:rule:backchain:candidates","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 56, column 0, characters 1259-1280:"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 76,"runtime_id" : 0,"name" : "user:rule:backchain:try","payload" : ["File \"tests/sources/trace-w/main.elpi\", line 56, column 0, characters 1259-1280:","(specialize (mono A0) A0) :- ."]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["A0 := list X14^1"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign:expand","payload" : ["X14^1 := X15 c0"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign:restrict","payload" : ["0 X15 c0 := c0 \\\n.X16"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:assign","payload" : ["X3 := list X16"]} +{"step" : 30,"kind" : ["Info"],"goal_id" : 76,"runtime_id" : 0,"name" : "user:rule:backchain","payload" : ["success"]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["!","!"]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule","payload" : ["cut"]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["75","File \"tests/sources/trace-w/main.elpi\", line 58, column 0, characters 1335-1398:","(specialize (all eqt A1) A2) :- (specialize (A1 A0) A2), (eqbar A0)."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["74","File \"tests/sources/trace-w/main.elpi\", line 44, column 0, characters 857-922:","(of (global ::) (all any (c0 \\ (mono (c0 ===> list c0 ===> list c0))))) :- ."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["74","File \"tests/sources/trace-w/main.elpi\", line 45, column 0, characters 924-979:","(of (global size) (all any (c0 \\ (mono (list c0 ===> int))))) :- ."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["74","File \"tests/sources/trace-w/main.elpi\", line 46, column 0, characters 981-1039:","(of (global undup) (all eqt (c0 \\ (mono (list c0 ===> list c0))))) :- ."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["74","File \"tests/sources/trace-w/main.elpi\", line 48, column 0, characters 1042-1117:","(of (global ,) \n (all any (c0 \\ (all any (c1 \\ (mono (c0 ===> c1 ===> pair c0 c1))))))) :- ."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["74","File \"tests/sources/trace-w/hm.elpi\", line 21, column 0, characters 368-429:","(of A0 (mono A3)) :- (of A0 (all A1 A2)), (specialize (all A1 A2) A3)."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["74","File \"tests/sources/trace-w/main.elpi\", line 163, column 0, characters 4507-4576:","(of A0 (mono A2)) :- (not err), !, (err => of A0 (mono A1)), \n (assert A0 A1 A2)."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["74","File \"tests/sources/trace-w/main.elpi\", line 164, column 0, characters 4578-4639:","(of A0 (mono _)) :- (print KO: term ( A0 ) has no type\n), halt."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["70","File \"tests/sources/trace-w/main.elpi\", line 163, column 0, characters 4507-4576:","(of A0 (mono A2)) :- (not err), !, (err => of A0 (mono A1)), \n (assert A0 A1 A2)."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["70","File \"tests/sources/trace-w/main.elpi\", line 164, column 0, characters 4578-4639:","(of A0 (mono _)) :- (print KO: term ( A0 ) has no type\n), halt."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["72","File \"tests/sources/trace-w/main.elpi\", line 58, column 0, characters 1335-1398:","(specialize (all eqt A1) A2) :- (specialize (A1 A0) A2), (eqbar A0)."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["71","File \"tests/sources/trace-w/hm.elpi\", line 21, column 0, characters 368-429:","(of A0 (mono A3)) :- (of A0 (all A1 A2)), (specialize (all A1 A2) A3)."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["71","File \"tests/sources/trace-w/main.elpi\", line 163, column 0, characters 4507-4576:","(of A0 (mono A2)) :- (not err), !, (err => of A0 (mono A1)), \n (assert A0 A1 A2)."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["71","File \"tests/sources/trace-w/main.elpi\", line 164, column 0, characters 4578-4639:","(of A0 (mono _)) :- (print KO: term ( A0 ) has no type\n), halt."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["69","File \"tests/sources/trace-w/main.elpi\", line 163, column 0, characters 4507-4576:","(of A0 (mono A2)) :- (not err), !, (err => of A0 (mono A1)), \n (assert A0 A1 A2)."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["69","File \"tests/sources/trace-w/main.elpi\", line 164, column 0, characters 4578-4639:","(of A0 (mono _)) :- (print KO: term ( A0 ) has no type\n), halt."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["68","File \"tests/sources/trace-w/hm.elpi\", line 21, column 0, characters 368-429:","(of A0 (mono A3)) :- (of A0 (all A1 A2)), (specialize (all A1 A2) A3)."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["68","File \"tests/sources/trace-w/main.elpi\", line 163, column 0, characters 4507-4576:","(of A0 (mono A2)) :- (not err), !, (err => of A0 (mono A1)), \n (assert A0 A1 A2)."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["68","File \"tests/sources/trace-w/main.elpi\", line 164, column 0, characters 4578-4639:","(of A0 (mono _)) :- (print KO: term ( A0 ) has no type\n), halt."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["22","File \"tests/sources/trace-w/hm.elpi\", line 21, column 0, characters 368-429:","(of A0 (mono A3)) :- (of A0 (all A1 A2)), (specialize (all A1 A2) A3)."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["22","File \"tests/sources/trace-w/main.elpi\", line 163, column 0, characters 4507-4576:","(of A0 (mono A2)) :- (not err), !, (err => of A0 (mono A1)), \n (assert A0 A1 A2)."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["22","File \"tests/sources/trace-w/main.elpi\", line 164, column 0, characters 4578-4639:","(of A0 (mono _)) :- (print KO: term ( A0 ) has no type\n), halt."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["17","File \"tests/sources/trace-w/hm.elpi\", line 21, column 0, characters 368-429:","(of A0 (mono A3)) :- (of A0 (all A1 A2)), (specialize (all A1 A2) A3)."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["17","File \"tests/sources/trace-w/main.elpi\", line 163, column 0, characters 4507-4576:","(of A0 (mono A2)) :- (not err), !, (err => of A0 (mono A1)), \n (assert A0 A1 A2)."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["17","File \"tests/sources/trace-w/main.elpi\", line 164, column 0, characters 4578-4639:","(of A0 (mono _)) :- (print KO: term ( A0 ) has no type\n), halt."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["10","File \"tests/sources/trace-w/hm.elpi\", line 21, column 0, characters 368-429:","(of A0 (mono A3)) :- (of A0 (all A1 A2)), (specialize (all A1 A2) A3)."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["10","File \"tests/sources/trace-w/main.elpi\", line 163, column 0, characters 4507-4576:","(of A0 (mono A2)) :- (not err), !, (err => of A0 (mono A1)), \n (assert A0 A1 A2)."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 0,"name" : "user:rule:cut:branch","payload" : ["10","File \"tests/sources/trace-w/main.elpi\", line 164, column 0, characters 4578-4639:","(of A0 (mono _)) :- (print KO: term ( A0 ) has no type\n), halt."]} +{"step" : 31,"kind" : ["Info"],"goal_id" : 11,"runtime_id" : 0,"name" : "user:rule:cut","payload" : ["success"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["print","print\n (let (lam c0 \\ c0) (all any c0 \\ mono (c0 ===> c0)) c0 \\ app c0 (global [])) \n : (mono (list X16))"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["print"]} +{"step" : 32,"kind" : ["Info"],"goal_id" : 12,"runtime_id" : 0,"name" : "user:rule:builtin","payload" : ["success"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:curgoal","payload" : ["print","print"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule","payload" : ["builtin"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule:builtin:name","payload" : ["print"]} +{"step" : 33,"kind" : ["Info"],"goal_id" : 13,"runtime_id" : 0,"name" : "user:rule:builtin","payload" : ["success"]} diff --git a/src/tests/tsconfig.json b/src/tests/tsconfig.json new file mode 100644 index 0000000..2529e65 --- /dev/null +++ b/src/tests/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "composite": true, + "module": "node18", + "rootDir": "../", + "outDir": "../../out", + "resolveJsonModule": true + }, + "include": ["."], + "references": [{ "path": "../shared" }] +} diff --git a/tsconfig.json b/tsconfig.json index 9a3f525..cacf0e3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,12 +1,20 @@ { "compilerOptions": { - "module": "commonjs", - "target": "es2020", - "lib": ["es2020"], - "outDir": "out", + "allowUnreachableCode": false, + "noImplicitReturns": true, + "noImplicitThis": true, + "noPropertyAccessFromIndexSignature": true, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "forceConsistentCasingInFileNames": true, + "verbatimModuleSyntax": false, "sourceMap": true, "strict": true, - "rootDir": "src" + "target": "es2022" }, - "exclude": ["node_modules", ".vscode-test"] + "files": [], + "references": [ + { "path": "./src/extension/tsconfig.json" } + ] }