diff --git a/stage0/src/kernel/environment.cpp b/stage0/src/kernel/environment.cpp index 678a553ce6..8c5d2b1a79 100644 --- a/stage0/src/kernel/environment.cpp +++ b/stage0/src/kernel/environment.cpp @@ -197,9 +197,9 @@ environment environment::add_theorem(declaration const & d, bool check) const { sharecommon_persistent_fn share; expr val(share(v.get_value().raw())); expr type(share(v.get_type().raw())); + check_constant_val(*this, v.to_constant_val(), checker); if (!checker.is_prop(type)) throw theorem_type_is_not_prop(*this, v.get_name(), type); - check_constant_val(*this, v.to_constant_val(), checker); check_no_metavar_no_fvar(*this, v.get_name(), val); expr val_type = checker.check(val, v.get_lparams()); if (!checker.is_def_eq(val_type, type)) diff --git a/stage0/src/kernel/type_checker.cpp b/stage0/src/kernel/type_checker.cpp index 76d69b959d..964bb19a85 100644 --- a/stage0/src/kernel/type_checker.cpp +++ b/stage0/src/kernel/type_checker.cpp @@ -483,12 +483,12 @@ expr type_checker::whnf_core(expr const & e, bool cheap_rec, bool cheap_proj) { } /** \brief Return some definition \c d iff \c e is a target for delta-reduction, and the given definition is the one - to be expanded. */ + to be expanded. If \c is_delta succeeds, then \c unfold_definition will also succeed. */ optional type_checker::is_delta(expr const & e) const { expr const & f = get_app_fn(e); if (is_constant(f)) { if (optional info = env().find(const_name(f))) - if (info->has_value()) + if (info->has_value() && length(const_levels(f)) == info->get_num_lparams()) return info; } return none_constant_info(); @@ -499,20 +499,18 @@ optional type_checker::unfold_definition_core(expr const & e) { if (auto d = is_delta(e)) { levels const & us = const_levels(e); unsigned len = length(us); - if (len == d->get_num_lparams()) { - if (m_diag) { - m_diag->record_unfold(d->get_name()); - } - if (len > 0) { - auto it = m_st->m_unfold.find(e); - if (it != m_st->m_unfold.end()) - return some_expr(it->second); - expr result = instantiate_value_lparams(*d, us); - m_st->m_unfold.insert(mk_pair(e, result)); - return some_expr(result); - } else { - return some_expr(instantiate_value_lparams(*d, us)); - } + if (m_diag) { + m_diag->record_unfold(d->get_name()); + } + if (len > 0) { + auto it = m_st->m_unfold.find(e); + if (it != m_st->m_unfold.end()) + return some_expr(it->second); + expr result = instantiate_value_lparams(*d, us); + m_st->m_unfold.insert(mk_pair(e, result)); + return some_expr(result); + } else { + return some_expr(instantiate_value_lparams(*d, us)); } } } diff --git a/stage0/src/runtime/CMakeLists.txt b/stage0/src/runtime/CMakeLists.txt index 7bce946380..b49ca7c0e4 100644 --- a/stage0/src/runtime/CMakeLists.txt +++ b/stage0/src/runtime/CMakeLists.txt @@ -21,7 +21,6 @@ set( sharecommon.cpp stack_overflow.cpp process.cpp - demangle.cpp object_ref.cpp mpn.cpp mutex.cpp diff --git a/stage0/src/runtime/demangle.cpp b/stage0/src/runtime/demangle.cpp deleted file mode 100644 index 4849f21956..0000000000 --- a/stage0/src/runtime/demangle.cpp +++ /dev/null @@ -1,792 +0,0 @@ -/* -Copyright (c) 2025 Microsoft Corporation. All rights reserved. -Released under Apache 2.0 license as described in the file LICENSE. - -Author: Leonardo de Moura - -C++ port of the Lean name demangling algorithm (Name.demangleAux from -NameMangling.lean) and human-friendly postprocessing. Used to make -runtime backtraces readable. -*/ -#include -#include -#include -#include -#include "runtime/demangle.h" - -namespace { - -// --------------------------------------------------------------------------- -// Name component: either a string or a number -// --------------------------------------------------------------------------- - -struct Component { - bool is_num; - std::string str; - unsigned num; - Component() : is_num(false), num(0) {} - static Component mk_str(std::string s) { Component c; c.str = std::move(s); return c; } - static Component mk_str(char ch) { Component c; c.str = std::string(1, ch); return c; } - static Component mk_num(unsigned n) { Component c; c.is_num = true; c.num = n; return c; } -}; - -using Components = std::vector; - -// --------------------------------------------------------------------------- -// Hex parsing and UTF-8 encoding -// --------------------------------------------------------------------------- - -int parse_hex(const char * s, int pos, int len, int n_digits, unsigned & out_val) { - if (pos + n_digits > len) return 0; - unsigned val = 0; - for (int i = 0; i < n_digits; i++) { - char c = s[pos + i]; - if (c >= '0' && c <= '9') - val = (val << 4) | (unsigned)(c - '0'); - else if (c >= 'a' && c <= 'f') - val = (val << 4) | (unsigned)(c - 'a' + 10); - else - return 0; - } - out_val = val; - return n_digits; -} - -void append_utf8(std::string & out, unsigned cp) { - if (cp < 0x80) { - out += (char)cp; - } else if (cp < 0x800) { - out += (char)(0xC0 | (cp >> 6)); - out += (char)(0x80 | (cp & 0x3F)); - } else if (cp < 0x10000) { - out += (char)(0xE0 | (cp >> 12)); - out += (char)(0x80 | ((cp >> 6) & 0x3F)); - out += (char)(0x80 | (cp & 0x3F)); - } else if (cp < 0x110000) { - out += (char)(0xF0 | (cp >> 18)); - out += (char)(0x80 | ((cp >> 12) & 0x3F)); - out += (char)(0x80 | ((cp >> 6) & 0x3F)); - out += (char)(0x80 | (cp & 0x3F)); - } -} - -// --------------------------------------------------------------------------- -// Core demangling: produces a component list -// Port of Name.demangleAux from NameMangling.lean -// --------------------------------------------------------------------------- - -void demangle_main(const char * s, int pos, int len, - std::string & acc, int ucount, Components & out); -void name_start(const char * s, int pos, int len, Components & out); - -void decode_num(const char * s, int pos, int len, - unsigned n, Components & out) { - while (pos < len) { - char ch = s[pos]; - if (ch >= '0' && ch <= '9') { - n = n * 10 + (unsigned)(ch - '0'); - pos++; - } else { - pos++; // skip trailing '_' - out.push_back(Component::mk_num(n)); - if (pos >= len) return; - pos++; // skip separator '_' - name_start(s, pos, len, out); - return; - } - } - out.push_back(Component::mk_num(n)); -} - -void name_start(const char * s, int pos, int len, Components & out) { - if (pos >= len) return; - char ch = s[pos]; - pos++; - if (ch >= '0' && ch <= '9') { - if (ch == '0' && pos < len && s[pos] == '0') { - pos++; - std::string acc; - demangle_main(s, pos, len, acc, 0, out); - } else { - decode_num(s, pos, len, (unsigned)(ch - '0'), out); - } - } else if (ch == '_') { - std::string acc; - demangle_main(s, pos, len, acc, 1, out); - } else { - std::string acc(1, ch); - demangle_main(s, pos, len, acc, 0, out); - } -} - -void demangle_main(const char * s, int pos, int len, - std::string & acc, int ucount, Components & out) { - while (pos < len) { - char ch = s[pos]; - pos++; - - if (ch == '_') { ucount++; continue; } - - if (ucount % 2 == 0) { - for (int i = 0; i < ucount / 2; i++) acc += '_'; - acc += ch; - ucount = 0; - continue; - } - - // Odd ucount: separator or escape - if (ch >= '0' && ch <= '9') { - for (int i = 0; i < ucount / 2; i++) acc += '_'; - out.push_back(Component::mk_str(std::move(acc))); - if (ch == '0' && pos < len && s[pos] == '0') { - pos++; - acc.clear(); - demangle_main(s, pos, len, acc, 0, out); - return; - } else { - decode_num(s, pos, len, (unsigned)(ch - '0'), out); - return; - } - } - - unsigned hex_val; - int consumed; - if (ch == 'x') { - consumed = parse_hex(s, pos, len, 2, hex_val); - if (consumed > 0) { - for (int i = 0; i < ucount / 2; i++) acc += '_'; - append_utf8(acc, hex_val); - pos += consumed; ucount = 0; continue; - } - } - if (ch == 'u') { - consumed = parse_hex(s, pos, len, 4, hex_val); - if (consumed > 0) { - for (int i = 0; i < ucount / 2; i++) acc += '_'; - append_utf8(acc, hex_val); - pos += consumed; ucount = 0; continue; - } - } - if (ch == 'U') { - consumed = parse_hex(s, pos, len, 8, hex_val); - if (consumed > 0) { - for (int i = 0; i < ucount / 2; i++) acc += '_'; - append_utf8(acc, hex_val); - pos += consumed; ucount = 0; continue; - } - } - - // Name separator - out.push_back(Component::mk_str(std::move(acc))); - acc.clear(); - for (int i = 0; i < ucount / 2; i++) acc += '_'; - acc += ch; - ucount = 0; - } - - for (int i = 0; i < ucount / 2; i++) acc += '_'; - if (!acc.empty()) - out.push_back(Component::mk_str(std::move(acc))); -} - -bool demangle_body(const char * s, int len, Components & out) { - if (len == 0) return false; - name_start(s, 0, len, out); - return !out.empty(); -} - -// Convenience: demangle to flat dot-separated string (used for lp_ validation) -bool demangle_body_flat(const char * s, int len, std::string & out) { - Components comps; - if (!demangle_body(s, len, comps)) return false; - for (size_t i = 0; i < comps.size(); i++) { - if (i > 0) out += '.'; - if (comps[i].is_num) out += std::to_string(comps[i].num); - else out += comps[i].str; - } - return true; -} - -// --------------------------------------------------------------------------- -// Format components as dot-separated string -// --------------------------------------------------------------------------- - -std::string format_name(const Components & comps) { - std::string out; - for (size_t i = 0; i < comps.size(); i++) { - if (i > 0) out += '.'; - if (comps[i].is_num) out += std::to_string(comps[i].num); - else out += comps[i].str; - } - return out; -} - -// --------------------------------------------------------------------------- -// Human-friendly postprocessing -// Port of postprocess_name from lean_demangle.py -// --------------------------------------------------------------------------- - -// Suffix flag labels (UTF-8 encoded) -static const char * FLAG_ARITY_DOWN = "arity\xe2\x86\x93"; // arity↓ -static const char * FLAG_BOXED = "boxed"; -static const char * FLAG_IMPL = "impl"; -static const char * FLAG_LAMBDA = "\xce\xbb"; // λ -static const char * FLAG_JP = "jp"; -static const char * FLAG_CLOSED = "closed"; - -// Check if a string consists entirely of ASCII digits. -bool is_all_digits(const char * s) { - if (!*s) return false; - while (*s) { if (*s < '0' || *s > '9') return false; s++; } - return true; -} - -bool starts_with_str(const std::string & s, const char * prefix) { - size_t plen = strlen(prefix); - return s.size() >= plen && s.compare(0, plen, prefix) == 0; -} - -// Match a compiler-generated suffix component. Returns flag label or nullptr. -const char * match_suffix(const Component & c) { - if (c.is_num) return nullptr; - const std::string & s = c.str; - // Exact matches - if (s == "_redArg") return FLAG_ARITY_DOWN; - if (s == "_boxed") return FLAG_BOXED; - if (s == "_impl") return FLAG_IMPL; - // Exact or indexed prefix matches - if (s == "_lam" || s == "_lambda" || s == "_elam") return FLAG_LAMBDA; - if (s == "_jp") return FLAG_JP; - if (s == "_closed") return FLAG_CLOSED; - // Indexed: _lam_N, _lambda_N, _elam_N, _jp_N, _closed_N - struct { const char * prefix; size_t len; const char * flag; } indexed[] = { - {"_lam_", 5, FLAG_LAMBDA}, - {"_lambda_", 8, FLAG_LAMBDA}, - {"_elam_", 6, FLAG_LAMBDA}, - {"_jp_", 4, FLAG_JP}, - {"_closed_", 8, FLAG_CLOSED}, - }; - for (auto & e : indexed) { - if (s.size() > e.len && s.compare(0, e.len, e.prefix) == 0 && - is_all_digits(s.c_str() + e.len)) - return e.flag; - } - return nullptr; -} - -// Check if component is a spec_N index. -bool is_spec_index(const Component & c) { - if (c.is_num) return false; - return starts_with_str(c.str, "spec_") && c.str.size() > 5 && - is_all_digits(c.str.c_str() + 5); -} - -// Strip _private.Module.0. prefix. Returns (begin index past the strip, is_private). -struct StripResult { size_t begin; bool is_private; }; - -StripResult strip_private(const Components & parts, size_t begin, size_t end) { - if (end - begin >= 3 && !parts[begin].is_num && parts[begin].str == "_private") { - for (size_t i = begin + 1; i < end; i++) { - if (parts[i].is_num && parts[i].num == 0) { - if (i + 1 < end) - return {i + 1, true}; - break; - } - } - } - return {begin, false}; -} - -// Spec context entry: name components + context flags -struct SpecEntry { - std::string name; - std::vector flags; -}; - -// Process a spec context: strip private, collect flags, format name -SpecEntry process_spec_context(const Components & comps, size_t begin, size_t end) { - SpecEntry entry; - auto sr = strip_private(comps, begin, end); - - std::vector seen_flags; - std::string name; - bool first = true; - - for (size_t i = sr.begin; i < end; i++) { - const char * flag = match_suffix(comps[i]); - if (flag) { - // Deduplicate - bool dup = false; - for (auto f : entry.flags) { if (f == flag) { dup = true; break; } } - if (!dup) entry.flags.push_back(flag); - } else if (is_spec_index(comps[i])) { - // skip - } else { - if (!first) name += '.'; - if (comps[i].is_num) name += std::to_string(comps[i].num); - else name += comps[i].str; - first = false; - } - } - entry.name = std::move(name); - return entry; -} - -std::string postprocess_name(const Components & components) { - if (components.empty()) return ""; - - size_t n = components.size(); - - // --- Strip _private prefix --- - auto sr = strip_private(components, 0, n); - size_t begin = sr.begin; - bool is_private = sr.is_private; - - // Copy relevant range into a working vector - Components parts(components.begin() + begin, components.begin() + n); - - // --- Strip hygienic suffixes: everything from _@ onward --- - { - size_t cut = parts.size(); - for (size_t i = 0; i < parts.size(); i++) { - if (!parts[i].is_num && starts_with_str(parts[i].str, "_@")) { - cut = i; - break; - } - } - parts.resize(cut); - } - - // --- Handle specialization: _at_ ... _spec N --- - std::vector spec_entries; - { - // Find first _at_ - int first_at = -1; - for (size_t i = 0; i < parts.size(); i++) { - if (!parts[i].is_num && parts[i].str == "_at_") { - first_at = (int)i; - break; - } - } - - if (first_at >= 0) { - Components base(parts.begin(), parts.begin() + first_at); - // Parse _at_..._spec entries - Components current_ctx; - bool in_ctx = false; - Components remaining; - bool skip_next = false; - - for (size_t i = first_at; i < parts.size(); i++) { - if (skip_next) { skip_next = false; continue; } - if (!parts[i].is_num && parts[i].str == "_at_") { - if (in_ctx) { - auto entry = process_spec_context(current_ctx, 0, current_ctx.size()); - if (!entry.name.empty() || !entry.flags.empty()) - spec_entries.push_back(std::move(entry)); - current_ctx.clear(); - } - in_ctx = true; - continue; - } - if (!parts[i].is_num && parts[i].str == "_spec") { - if (in_ctx) { - auto entry = process_spec_context(current_ctx, 0, current_ctx.size()); - if (!entry.name.empty() || !entry.flags.empty()) - spec_entries.push_back(std::move(entry)); - current_ctx.clear(); - in_ctx = false; - } - skip_next = true; - continue; - } - if (!parts[i].is_num && starts_with_str(parts[i].str, "_spec")) { - if (in_ctx) { - auto entry = process_spec_context(current_ctx, 0, current_ctx.size()); - if (!entry.name.empty() || !entry.flags.empty()) - spec_entries.push_back(std::move(entry)); - current_ctx.clear(); - in_ctx = false; - } - continue; - } - if (in_ctx) - current_ctx.push_back(parts[i]); - else - remaining.push_back(parts[i]); - } - if (in_ctx && !current_ctx.empty()) { - auto entry = process_spec_context(current_ctx, 0, current_ctx.size()); - if (!entry.name.empty() || !entry.flags.empty()) - spec_entries.push_back(std::move(entry)); - } - - parts = base; - parts.insert(parts.end(), remaining.begin(), remaining.end()); - } - } - - // --- Collect suffix flags from the end --- - std::vector flags; - while (!parts.empty()) { - const Component & last = parts.back(); - const char * flag = match_suffix(last); - if (flag) { - flags.push_back(flag); - parts.pop_back(); - } else if (last.is_num && parts.size() >= 2) { - const char * prev_flag = match_suffix(parts[parts.size() - 2]); - if (prev_flag) { - flags.push_back(prev_flag); - parts.pop_back(); // number - parts.pop_back(); // suffix - } else { - break; - } - } else { - break; - } - } - - if (is_private) flags.push_back("private"); - - // --- Format result --- - std::string result = parts.empty() ? "?" : format_name(parts); - - if (!flags.empty()) { - result += " ["; - for (size_t i = 0; i < flags.size(); i++) { - if (i > 0) result += ", "; - result += flags[i]; - } - result += ']'; - } - - for (auto & entry : spec_entries) { - std::string ctx_str = entry.name.empty() ? "?" : entry.name; - if (!entry.flags.empty()) { - result += " spec at " + ctx_str + "["; - for (size_t i = 0; i < entry.flags.size(); i++) { - if (i > 0) result += ", "; - result += entry.flags[i]; - } - result += ']'; - } else { - result += " spec at " + ctx_str; - } - } - - return result; -} - -// --------------------------------------------------------------------------- -// Prefix handling and lp_ splitting -// --------------------------------------------------------------------------- - -const char * starts_with(const char * s, const char * prefix) { - size_t plen = strlen(prefix); - if (strncmp(s, prefix, plen) == 0) return s + plen; - return nullptr; -} - -bool has_upper_start(const char * s, int len) { - if (len == 0) return false; - int pos = 0; - if (pos + 1 < len && s[pos] == '0' && s[pos + 1] == '0') pos += 2; - while (pos < len && s[pos] == '_') pos++; - if (pos >= len) return false; - return s[pos] >= 'A' && s[pos] <= 'Z'; -} - -bool is_valid_string_mangle(const char * s, int end) { - int pos = 0; - while (pos < end) { - char ch = s[pos]; - if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9')) { - pos++; - } else if (ch == '_') { - if (pos + 1 >= end) return false; - char nch = s[pos + 1]; - unsigned v; - if (nch == '_') { pos += 2; } - else if (nch == 'x' && parse_hex(s, pos + 2, end, 2, v)) { pos += 4; } - else if (nch == 'u' && parse_hex(s, pos + 2, end, 4, v)) { pos += 6; } - else if (nch == 'U' && parse_hex(s, pos + 2, end, 8, v)) { pos += 10; } - else return false; - } else { - return false; - } - } - return true; -} - -int find_lp_body(const char * s, int len) { - int best = -1; - bool best_has_upper = false; - - for (int i = 0; i < len; i++) { - if (s[i] != '_') continue; - if (i == 0) continue; - if (!is_valid_string_mangle(s, i)) continue; - int body_start = i + 1; - int body_len = len - body_start; - if (body_len <= 0) continue; - - Components test; - if (!demangle_body(s + body_start, body_len, test)) continue; - - bool upper = has_upper_start(s + body_start, body_len); - if (upper) { - if (!best_has_upper || i > best - 1) { - best = body_start; - best_has_upper = true; - } - } else if (!best_has_upper) { - if (best == -1) best = body_start; - } - } - return best; -} - -void unmangle_pkg(const char * s, int len, std::string & out) { - std::string tmp; - if (demangle_body_flat(s, len, tmp) && tmp.find('.') == std::string::npos) { - out += tmp; - } else { - out.append(s, len); - } -} - -// --------------------------------------------------------------------------- -// Helper to produce final malloc'd string -// --------------------------------------------------------------------------- - -char * to_malloc_str(const std::string & s) { - char * ret = (char *)malloc(s.size() + 1); - if (ret) memcpy(ret, s.c_str(), s.size() + 1); - return ret; -} - -// Demangle body and postprocess to human-friendly string. -bool demangle_and_postprocess(const char * body, int body_len, std::string & out) { - Components comps; - if (!demangle_body(body, body_len, comps)) return false; - out = postprocess_name(comps); - return true; -} - -} // anonymous namespace - -// --------------------------------------------------------------------------- -// Public API -// --------------------------------------------------------------------------- - -char * lean_demangle_symbol(const char * symbol) { - if (!symbol || !symbol[0]) return nullptr; - - int slen = (int)strlen(symbol); - - // Handle lean_apply_N -> - { - const char * rest = starts_with(symbol, "lean_apply_"); - if (rest && is_all_digits(rest)) { - std::string result = " 0 && demangle_and_postprocess(rest, body_len, out)) { - std::string result = "[init] " + out; - if (cold_suffix) { result += ' '; result.append(cold_suffix, cold_suffix_len); } - return to_malloc_str(result); - } - } - - // _init_lp_ prefix - if ((rest = starts_with(cs, "_init_lp_")) != nullptr) { - int after_len = core_len - (int)(rest - cs); - int body_idx = find_lp_body(rest, after_len); - if (body_idx >= 0) { - std::string pkg_out; - unmangle_pkg(rest, body_idx - 1, pkg_out); - if (demangle_and_postprocess(rest + body_idx, after_len - body_idx, out)) { - std::string result = "[init] " + out + " (" + pkg_out + ")"; - if (cold_suffix) { result += ' '; result.append(cold_suffix, cold_suffix_len); } - return to_malloc_str(result); - } - } - } - - // initialize_l_ prefix - if ((rest = starts_with(cs, "initialize_l_")) != nullptr) { - int body_len = core_len - (int)(rest - cs); - if (body_len > 0 && demangle_and_postprocess(rest, body_len, out)) { - std::string result = "[module_init] " + out; - if (cold_suffix) { result += ' '; result.append(cold_suffix, cold_suffix_len); } - return to_malloc_str(result); - } - } - - // initialize_lp_ prefix - if ((rest = starts_with(cs, "initialize_lp_")) != nullptr) { - int after_len = core_len - (int)(rest - cs); - int body_idx = find_lp_body(rest, after_len); - if (body_idx >= 0) { - std::string pkg_out; - unmangle_pkg(rest, body_idx - 1, pkg_out); - if (demangle_and_postprocess(rest + body_idx, after_len - body_idx, out)) { - std::string result = "[module_init] " + out + " (" + pkg_out + ")"; - if (cold_suffix) { result += ' '; result.append(cold_suffix, cold_suffix_len); } - return to_malloc_str(result); - } - } - } - - // initialize_ (bare module init) - if ((rest = starts_with(cs, "initialize_")) != nullptr) { - int body_len = core_len - (int)(rest - cs); - if (body_len > 0 && demangle_and_postprocess(rest, body_len, out)) { - std::string result = "[module_init] " + out; - if (cold_suffix) { result += ' '; result.append(cold_suffix, cold_suffix_len); } - return to_malloc_str(result); - } - } - - // l_ prefix - if ((rest = starts_with(cs, "l_")) != nullptr) { - int body_len = core_len - (int)(rest - cs); - if (body_len > 0 && demangle_and_postprocess(rest, body_len, out)) { - if (cold_suffix) { out += ' '; out.append(cold_suffix, cold_suffix_len); } - return to_malloc_str(out); - } - } - - // lp_ prefix - if ((rest = starts_with(cs, "lp_")) != nullptr) { - int after_len = core_len - (int)(rest - cs); - int body_idx = find_lp_body(rest, after_len); - if (body_idx >= 0) { - std::string pkg_out; - unmangle_pkg(rest, body_idx - 1, pkg_out); - if (demangle_and_postprocess(rest + body_idx, after_len - body_idx, out)) { - std::string result = out + " (" + pkg_out + ")"; - if (cold_suffix) { result += ' '; result.append(cold_suffix, cold_suffix_len); } - return to_malloc_str(result); - } - } - } - - return nullptr; -} - -// --------------------------------------------------------------------------- -// Backtrace line parsing -// --------------------------------------------------------------------------- - -static const char * extract_symbol(const char * line, int * sym_len) { - int len = (int)strlen(line); - - // Linux (glibc): ./lean(l_Lean_Meta_foo+0x2a) [0x555...] - for (int i = 0; i < len; i++) { - if (line[i] == '(') { - int start = i + 1; - for (int j = start; j < len; j++) { - if (line[j] == '+' || line[j] == ')') { - if (j > start) { *sym_len = j - start; return line + start; } - break; - } - } - break; - } - } - - // macOS: 2 lean 0x100abc123 l_Lean_Meta_foo + 42 - for (int i = 0; i + 1 < len; i++) { - if (line[i] == '0' && line[i + 1] == 'x') { - int j = i + 2; - while (j < len && ((line[j] >= '0' && line[j] <= '9') || - (line[j] >= 'a' && line[j] <= 'f') || - (line[j] >= 'A' && line[j] <= 'F'))) j++; - while (j < len && line[j] == ' ') j++; - if (j >= len) return nullptr; - int start = j; - while (j < len) { - if (j + 2 < len && line[j] == ' ' && line[j + 1] == '+' && line[j + 2] == ' ') - break; - j++; - } - if (j > start) { *sym_len = j - start; return line + start; } - return nullptr; - } - } - - return nullptr; -} - -char * lean_demangle_bt_line(const char * line) { - if (!line) return nullptr; - - int sym_len = 0; - const char * sym = extract_symbol(line, &sym_len); - if (!sym || sym_len == 0) return nullptr; - - // Make null-terminated copy - char * sym_copy = (char *)malloc(sym_len + 1); - if (!sym_copy) return nullptr; - memcpy(sym_copy, sym, sym_len); - sym_copy[sym_len] = '\0'; - - char * demangled = lean_demangle_symbol(sym_copy); - free(sym_copy); - if (!demangled) return nullptr; - - // Reconstruct line with demangled name - int line_len = (int)strlen(line); - int dem_len = (int)strlen(demangled); - int prefix_len = (int)(sym - line); - int suffix_start = prefix_len + sym_len; - int suffix_len = line_len - suffix_start; - - int new_len = prefix_len + dem_len + suffix_len; - char * result = (char *)malloc(new_len + 1); - if (!result) { free(demangled); return nullptr; } - - memcpy(result, line, prefix_len); - memcpy(result + prefix_len, demangled, dem_len); - memcpy(result + prefix_len + dem_len, line + suffix_start, suffix_len); - result[new_len] = '\0'; - - free(demangled); - return result; -} diff --git a/stage0/src/runtime/demangle.h b/stage0/src/runtime/demangle.h deleted file mode 100644 index 0af19df94c..0000000000 --- a/stage0/src/runtime/demangle.h +++ /dev/null @@ -1,26 +0,0 @@ -/* -Copyright (c) 2025 Microsoft Corporation. All rights reserved. -Released under Apache 2.0 license as described in the file LICENSE. - -Author: Leonardo de Moura -*/ -#pragma once - -/* - * Demangle Lean symbol names in backtrace lines. - * - * lean_demangle_symbol(symbol): - * Given a mangled C symbol name (e.g. "l_Lean_Meta_Grind_foo"), - * returns a malloc'd string with the demangled name (e.g. "Lean.Meta.Grind.foo"), - * or nullptr if the symbol is not a Lean name. - * - * lean_demangle_bt_line(line): - * Given a backtrace line from backtrace_symbols(), extracts the symbol, - * demangles it, and returns a malloc'd string with the demangled name - * substituted in. Returns nullptr if nothing was demangled. - * - * Callers must free() non-null return values. - */ - -char * lean_demangle_symbol(const char * symbol); -char * lean_demangle_bt_line(const char * line); diff --git a/stage0/src/runtime/object.cpp b/stage0/src/runtime/object.cpp index c031e8a0bc..aefb0064ab 100644 --- a/stage0/src/runtime/object.cpp +++ b/stage0/src/runtime/object.cpp @@ -31,7 +31,13 @@ Author: Leonardo de Moura #if LEAN_SUPPORTS_BACKTRACE #include #include -#include "runtime/demangle.h" +// Lean-exported demangler from Lean.Compiler.NameDemangling. +// Declared as a weak symbol so leanrt doesn't require libLean at link time. +// When the Lean demangler is linked in, it overrides this stub. +extern "C" __attribute__((weak)) lean_object * lean_demangle_bt_line_cstr(lean_object * s) { + lean_dec(s); + return lean_mk_string(""); +} #endif // HACK: for unknown reasons, std::isnan(x) fails on msys64 because math.h @@ -137,13 +143,20 @@ static void print_backtrace(bool force_stderr) { if (char ** symbols = backtrace_symbols(bt_buf, nptrs)) { bool raw = getenv("LEAN_BACKTRACE_RAW"); for (int i = 0; i < nptrs; i++) { - char * demangled = raw ? nullptr : lean_demangle_bt_line(symbols[i]); - if (demangled) { - panic_eprintln(demangled, force_stderr); - free(demangled); - } else { - panic_eprintln(symbols[i], force_stderr); + if (!raw) { + lean_object * line_obj = lean_mk_string(symbols[i]); + lean_object * result = lean_demangle_bt_line_cstr(line_obj); + char const * result_str = lean_string_cstr(result); + if (result_str[0] != '\0') { + panic_eprintln(result_str, force_stderr); + lean_dec(result); + lean_dec(line_obj); + continue; + } + lean_dec(result); + lean_dec(line_obj); } + panic_eprintln(symbols[i], force_stderr); } // According to `man backtrace`, each `symbols[i]` should NOT be freed free(symbols); diff --git a/stage0/src/stdlib_flags.h b/stage0/src/stdlib_flags.h index 744657ae20..79a0e58edd 100644 --- a/stage0/src/stdlib_flags.h +++ b/stage0/src/stdlib_flags.h @@ -1,7 +1,5 @@ #include "util/options.h" -// Dear CI, please build stage 2 first - namespace lean { options get_default_options() { options opts; diff --git a/stage0/stdlib/Init/Data/Array.c b/stage0/stdlib/Init/Data/Array.c index d592c47ff9..c2d51be3aa 100644 --- a/stage0/stdlib/Init/Data/Array.c +++ b/stage0/stdlib/Init/Data/Array.c @@ -1,6 +1,6 @@ // Lean compiler output // Module: Init.Data.Array -// Imports: public import Init.Data.Array.Basic public import Init.Data.Array.QSort public import Init.Data.Array.BinSearch public import Init.Data.Array.InsertionSort public import Init.Data.Array.DecidableEq public import Init.Data.Array.Mem public import Init.Data.Array.Attach public import Init.Data.Array.BasicAux public import Init.Data.Array.Lemmas public import Init.Data.Array.TakeDrop public import Init.Data.Array.Bootstrap public import Init.Data.Array.GetLit public import Init.Data.Array.MapIdx public import Init.Data.Array.Set public import Init.Data.Array.Monadic public import Init.Data.Array.FinRange public import Init.Data.Array.Perm public import Init.Data.Array.Find public import Init.Data.Array.Lex public import Init.Data.Array.Range public import Init.Data.Array.Erase public import Init.Data.Array.Zip public import Init.Data.Array.InsertIdx public import Init.Data.Array.Extract public import Init.Data.Array.MinMax public import Init.Data.Array.Nat public import Init.Data.Array.Int public import Init.Data.Array.Count +// Imports: public import Init.Data.Array.Basic public import Init.Data.Array.QSort public import Init.Data.Array.BinSearch public import Init.Data.Array.InsertionSort public import Init.Data.Array.DecidableEq public import Init.Data.Array.Mem public import Init.Data.Array.Attach public import Init.Data.Array.BasicAux public import Init.Data.Array.Lemmas public import Init.Data.Array.TakeDrop public import Init.Data.Array.Bootstrap public import Init.Data.Array.GetLit public import Init.Data.Array.MapIdx public import Init.Data.Array.Set public import Init.Data.Array.Monadic public import Init.Data.Array.FinRange public import Init.Data.Array.Perm public import Init.Data.Array.Find public import Init.Data.Array.Lex public import Init.Data.Array.Range public import Init.Data.Array.Erase public import Init.Data.Array.Zip public import Init.Data.Array.InsertIdx public import Init.Data.Array.Extract public import Init.Data.Array.MinMax public import Init.Data.Array.Nat public import Init.Data.Array.Int public import Init.Data.Array.Count public import Init.Data.Array.Sort #include #if defined(__clang__) #pragma clang diagnostic ignored "-Wunused-parameter" @@ -41,6 +41,7 @@ lean_object* runtime_initialize_Init_Data_Array_MinMax(uint8_t builtin); lean_object* runtime_initialize_Init_Data_Array_Nat(uint8_t builtin); lean_object* runtime_initialize_Init_Data_Array_Int(uint8_t builtin); lean_object* runtime_initialize_Init_Data_Array_Count(uint8_t builtin); +lean_object* runtime_initialize_Init_Data_Array_Sort(uint8_t builtin); static bool _G_runtime_initialized = false; LEAN_EXPORT lean_object* runtime_initialize_Init_Data_Array(uint8_t builtin) { lean_object * res; @@ -158,6 +159,10 @@ res = runtime_initialize_Init_Data_Array_Count(builtin) ; if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +res = runtime_initialize_Init_Data_Array_Sort(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); return lean_io_result_mk_ok(lean_box(0)); } static bool _G_meta_initialized = false; @@ -195,6 +200,7 @@ lean_object* initialize_Init_Data_Array_MinMax(uint8_t builtin); lean_object* initialize_Init_Data_Array_Nat(uint8_t builtin); lean_object* initialize_Init_Data_Array_Int(uint8_t builtin); lean_object* initialize_Init_Data_Array_Count(uint8_t builtin); +lean_object* initialize_Init_Data_Array_Sort(uint8_t builtin); static bool _G_initialized = false; LEAN_EXPORT lean_object* initialize_Init_Data_Array(uint8_t builtin) { lean_object * res; @@ -312,6 +318,10 @@ res = initialize_Init_Data_Array_Count(builtin) ; if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +res = initialize_Init_Data_Array_Sort(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); res = runtime_initialize_Init_Data_Array(builtin) ; if (lean_io_result_is_error(res)) return res; diff --git a/stage0/stdlib/Init/Data/Array/Sort.c b/stage0/stdlib/Init/Data/Array/Sort.c new file mode 100644 index 0000000000..af77e1be7c --- /dev/null +++ b/stage0/stdlib/Init/Data/Array/Sort.c @@ -0,0 +1,67 @@ +// Lean compiler output +// Module: Init.Data.Array.Sort +// Imports: public import Init.Data.Array.Sort.Basic public import Init.Data.Array.Sort.Lemmas +#include +#if defined(__clang__) +#pragma clang diagnostic ignored "-Wunused-parameter" +#pragma clang diagnostic ignored "-Wunused-label" +#elif defined(__GNUC__) && !defined(__CLANG__) +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wunused-label" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif +#ifdef __cplusplus +extern "C" { +#endif +lean_object* runtime_initialize_Init_Data_Array_Sort_Basic(uint8_t builtin); +lean_object* runtime_initialize_Init_Data_Array_Sort_Lemmas(uint8_t builtin); +static bool _G_runtime_initialized = false; +LEAN_EXPORT lean_object* runtime_initialize_Init_Data_Array_Sort(uint8_t builtin) { +lean_object * res; +if (_G_runtime_initialized) return lean_io_result_mk_ok(lean_box(0)); +_G_runtime_initialized = true; +res = runtime_initialize_Init_Data_Array_Sort_Basic(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Init_Data_Array_Sort_Lemmas(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +return lean_io_result_mk_ok(lean_box(0)); +} +static bool _G_meta_initialized = false; +LEAN_EXPORT lean_object* meta_initialize_Init_Data_Array_Sort(uint8_t builtin) { +lean_object * res; +if (_G_meta_initialized) return lean_io_result_mk_ok(lean_box(0)); +_G_meta_initialized = true; +return lean_io_result_mk_ok(lean_box(0)); +} +lean_object* initialize_Init_Data_Array_Sort_Basic(uint8_t builtin); +lean_object* initialize_Init_Data_Array_Sort_Lemmas(uint8_t builtin); +static bool _G_initialized = false; +LEAN_EXPORT lean_object* initialize_Init_Data_Array_Sort(uint8_t builtin) { +lean_object * res; +if (_G_initialized) return lean_io_result_mk_ok(lean_box(0)); +_G_initialized = true; +res = initialize_Init_Data_Array_Sort_Basic(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Init_Data_Array_Sort_Lemmas(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Init_Data_Array_Sort(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = meta_initialize_Init_Data_Array_Sort(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +return initialize_Init_Data_Array_Sort(builtin); +} +#ifdef __cplusplus +} +#endif diff --git a/stage0/stdlib/Init/Data/Array/Sort/Basic.c b/stage0/stdlib/Init/Data/Array/Sort/Basic.c new file mode 100644 index 0000000000..2c009651db --- /dev/null +++ b/stage0/stdlib/Init/Data/Array/Sort/Basic.c @@ -0,0 +1,1058 @@ +// Lean compiler output +// Module: Init.Data.Array.Sort.Basic +// Imports: public import Init.Data.Array.Subarray.Split public import Init.Data.Slice.Array import Init.Omega +#include +#if defined(__clang__) +#pragma clang diagnostic ignored "-Wunused-parameter" +#pragma clang diagnostic ignored "-Wunused-label" +#elif defined(__GNUC__) && !defined(__CLANG__) +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wunused-label" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif +#ifdef __cplusplus +extern "C" { +#endif +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 5, .m_capacity = 5, .m_length = 4, .m_data = "Lean"}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__0 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__0_value; +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 7, .m_capacity = 7, .m_length = 6, .m_data = "Parser"}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__1 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__1_value; +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 7, .m_capacity = 7, .m_length = 6, .m_data = "Tactic"}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__2 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__2_value; +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 10, .m_capacity = 10, .m_length = 9, .m_data = "tacticSeq"}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__3 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__3_value; +lean_object* l_Lean_Name_mkStr4(lean_object*, lean_object*, lean_object*, lean_object*); +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__4_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__0_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__4_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__4_value_aux_0),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__1_value),LEAN_SCALAR_PTR_LITERAL(103, 136, 125, 166, 167, 98, 71, 111)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__4_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__4_value_aux_1),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__2_value),LEAN_SCALAR_PTR_LITERAL(166, 58, 35, 182, 187, 130, 147, 254)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__4_value_aux_2),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__3_value),LEAN_SCALAR_PTR_LITERAL(212, 140, 85, 215, 241, 69, 7, 118)}}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__4 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__4_value; +lean_object* lean_mk_empty_array_with_capacity(lean_object*); +static const lean_array_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__5_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*0, .m_other = 0, .m_tag = 246}, .m_size = 0, .m_capacity = 0, .m_data = {}}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__5 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__5_value; +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 19, .m_capacity = 19, .m_length = 18, .m_data = "tacticSeq1Indented"}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__6 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__6_value; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__7_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__0_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__7_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__7_value_aux_0),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__1_value),LEAN_SCALAR_PTR_LITERAL(103, 136, 125, 166, 167, 98, 71, 111)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__7_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__7_value_aux_1),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__2_value),LEAN_SCALAR_PTR_LITERAL(166, 58, 35, 182, 187, 130, 147, 254)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__7_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__7_value_aux_2),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__6_value),LEAN_SCALAR_PTR_LITERAL(223, 90, 160, 238, 133, 180, 23, 239)}}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__7 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__7_value; +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__8_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 5, .m_capacity = 5, .m_length = 4, .m_data = "null"}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__8 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__8_value; +lean_object* l_Lean_Name_mkStr1(lean_object*); +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__9_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__8_value),LEAN_SCALAR_PTR_LITERAL(24, 58, 49, 223, 146, 207, 197, 136)}}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__9 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__9_value; +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__10_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 6, .m_capacity = 6, .m_length = 5, .m_data = "exact"}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__10 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__10_value; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__11_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__0_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__11_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__11_value_aux_0),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__1_value),LEAN_SCALAR_PTR_LITERAL(103, 136, 125, 166, 167, 98, 71, 111)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__11_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__11_value_aux_1),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__2_value),LEAN_SCALAR_PTR_LITERAL(166, 58, 35, 182, 187, 130, 147, 254)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__11_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__11_value_aux_2),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__10_value),LEAN_SCALAR_PTR_LITERAL(108, 106, 111, 83, 219, 207, 32, 208)}}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__11 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__11_value; +lean_object* l_Lean_mkAtom(lean_object*); +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__12_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__12; +lean_object* lean_array_push(lean_object*, lean_object*); +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__13_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__13; +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__14_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 5, .m_capacity = 5, .m_length = 4, .m_data = "Term"}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__14 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__14_value; +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__15_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 6, .m_capacity = 6, .m_length = 5, .m_data = "paren"}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__15 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__15_value; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__16_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__0_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__16_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__16_value_aux_0),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__1_value),LEAN_SCALAR_PTR_LITERAL(103, 136, 125, 166, 167, 98, 71, 111)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__16_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__16_value_aux_1),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__14_value),LEAN_SCALAR_PTR_LITERAL(75, 170, 162, 138, 136, 204, 251, 229)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__16_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__16_value_aux_2),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__15_value),LEAN_SCALAR_PTR_LITERAL(124, 9, 161, 194, 227, 100, 20, 110)}}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__16 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__16_value; +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__17_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 15, .m_capacity = 15, .m_length = 14, .m_data = "hygienicLParen"}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__17 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__17_value; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__18_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__0_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__18_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__18_value_aux_0),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__1_value),LEAN_SCALAR_PTR_LITERAL(103, 136, 125, 166, 167, 98, 71, 111)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__18_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__18_value_aux_1),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__14_value),LEAN_SCALAR_PTR_LITERAL(75, 170, 162, 138, 136, 204, 251, 229)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__18_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__18_value_aux_2),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__17_value),LEAN_SCALAR_PTR_LITERAL(41, 104, 206, 51, 21, 254, 100, 101)}}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__18 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__18_value; +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__19_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 2, .m_capacity = 2, .m_length = 1, .m_data = "("}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__19 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__19_value; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__20_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__20; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__21_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__21; +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__22_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "hygieneInfo"}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__22 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__22_value; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__23_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__22_value),LEAN_SCALAR_PTR_LITERAL(27, 64, 36, 144, 170, 151, 255, 136)}}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__23 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__23_value; +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__24_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "[anonymous]"}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__24 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__24_value; +lean_object* lean_string_utf8_byte_size(lean_object*); +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__25_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__25; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__26_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__26; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__27_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__27; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__28_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__28; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__29_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__29; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__30_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__30; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__31_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__31; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__32_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__32; +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__33_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 10, .m_capacity = 10, .m_length = 7, .m_data = "term_≤_"}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__33 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__33_value; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__34_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__33_value),LEAN_SCALAR_PTR_LITERAL(111, 3, 61, 112, 38, 138, 106, 121)}}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__34 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__34_value; +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__35_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 5, .m_capacity = 5, .m_length = 4, .m_data = "cdot"}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__35 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__35_value; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__36_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__0_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__36_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__36_value_aux_0),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__1_value),LEAN_SCALAR_PTR_LITERAL(103, 136, 125, 166, 167, 98, 71, 111)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__36_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__36_value_aux_1),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__14_value),LEAN_SCALAR_PTR_LITERAL(75, 170, 162, 138, 136, 204, 251, 229)}}; +static const lean_ctor_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__36_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__36_value_aux_2),((lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__35_value),LEAN_SCALAR_PTR_LITERAL(215, 94, 65, 66, 49, 100, 151, 85)}}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__36 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__36_value; +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__37_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 3, .m_capacity = 3, .m_length = 1, .m_data = "·"}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__37 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__37_value; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__38_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__38; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__39_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__39; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__40_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__40; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__41_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__41; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__42_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__42; +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__43_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 4, .m_capacity = 4, .m_length = 1, .m_data = "≤"}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__43 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__43_value; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__44_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__44; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__45_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__45; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__46_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__46; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__47_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__47; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__48_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__48; +static const lean_string_object l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__49_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 2, .m_capacity = 2, .m_length = 1, .m_data = ")"}; +static const lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__49 = (const lean_object*)&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__49_value; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__50_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__50; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__51_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__51; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__52_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__52; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__53_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__53; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__54_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__54; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__55_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__55; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__56_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__56; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__57_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__57; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__58_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__58; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__59_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__59; +static lean_once_cell_t l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__60_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__60; +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1; +uint8_t lean_nat_dec_lt(lean_object*, lean_object*); +lean_object* lean_nat_add(lean_object*, lean_object*); +lean_object* lean_array_fget(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00__private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge_go_spec__0___redArg(lean_object*, lean_object*); +lean_object* l_Subarray_get___redArg(lean_object*, lean_object*); +lean_object* lean_nat_sub(lean_object*, lean_object*); +lean_object* l_Subarray_drop___redArg(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge_go___redArg(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00__private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge_go_spec__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_array_get_size(lean_object*); +lean_object* l_Array_toSubarray___redArg(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___redArg(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Subarray_mergeSort___auto__1; +LEAN_EXPORT lean_object* l___private_Init_WFExtrinsicFix_0__WellFounded_opaqueFix_u2082___at___00Subarray_mergeSort_spec__0___redArg(lean_object*, lean_object*); +lean_object* lean_mk_empty_array_with_capacity(lean_object*); +static const lean_array_object l_Subarray_mergeSort___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*0, .m_other = 0, .m_tag = 246}, .m_size = 0, .m_capacity = 0, .m_data = {}}; +static const lean_object* l_Subarray_mergeSort___redArg___closed__0 = (const lean_object*)&l_Subarray_mergeSort___redArg___closed__0_value; +LEAN_EXPORT lean_object* l_Subarray_mergeSort___redArg(lean_object*, lean_object*); +lean_object* lean_nat_shiftr(lean_object*, lean_object*); +uint8_t lean_nat_dec_le(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Subarray_mergeSort(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_WFExtrinsicFix_0__WellFounded_opaqueFix_u2082___at___00Subarray_mergeSort_spec__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mergeSort___auto__1; +LEAN_EXPORT lean_object* l_Array_mergeSort___redArg(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mergeSort(lean_object*, lean_object*, lean_object*); +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__12(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__10)); +x_2 = l_Lean_mkAtom(x_1); +return x_2; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__13(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__12, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__12_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__12); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__5)); +x_3 = lean_array_push(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__20(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__19)); +x_2 = l_Lean_mkAtom(x_1); +return x_2; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__21(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__20, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__20_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__20); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__5)); +x_3 = lean_array_push(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__25(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__24)); +x_2 = lean_string_utf8_byte_size(x_1); +return x_2; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__26(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__25, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__25_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__25); +x_2 = lean_unsigned_to_nat(0u); +x_3 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__24)); +x_4 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_2); +lean_ctor_set(x_4, 2, x_1); +return x_4; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__27(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_1 = lean_box(0); +x_2 = lean_box(0); +x_3 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__26, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__26_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__26); +x_4 = lean_box(2); +x_5 = lean_alloc_ctor(3, 4, 0); +lean_ctor_set(x_5, 0, x_4); +lean_ctor_set(x_5, 1, x_3); +lean_ctor_set(x_5, 2, x_2); +lean_ctor_set(x_5, 3, x_1); +return x_5; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__28(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__27, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__27_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__27); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__5)); +x_3 = lean_array_push(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__29(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__28, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__28_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__28); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__23)); +x_3 = lean_box(2); +x_4 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_2); +lean_ctor_set(x_4, 2, x_1); +return x_4; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__30(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__29, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__29_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__29); +x_2 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__21, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__21_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__21); +x_3 = lean_array_push(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__31(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__30, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__30_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__30); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__18)); +x_3 = lean_box(2); +x_4 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_2); +lean_ctor_set(x_4, 2, x_1); +return x_4; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__32(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__31, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__31_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__31); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__5)); +x_3 = lean_array_push(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__38(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__37)); +x_2 = l_Lean_mkAtom(x_1); +return x_2; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__39(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__38, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__38_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__38); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__5)); +x_3 = lean_array_push(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__40(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__29, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__29_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__29); +x_2 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__39, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__39_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__39); +x_3 = lean_array_push(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__41(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__40, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__40_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__40); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__36)); +x_3 = lean_box(2); +x_4 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_2); +lean_ctor_set(x_4, 2, x_1); +return x_4; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__42(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__41, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__41_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__41); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__5)); +x_3 = lean_array_push(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__44(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__43)); +x_2 = l_Lean_mkAtom(x_1); +return x_2; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__45(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__44, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__44_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__44); +x_2 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__42, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__42_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__42); +x_3 = lean_array_push(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__46(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__41, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__41_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__41); +x_2 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__45, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__45_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__45); +x_3 = lean_array_push(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__47(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__46, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__46_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__46); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__34)); +x_3 = lean_box(2); +x_4 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_2); +lean_ctor_set(x_4, 2, x_1); +return x_4; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__48(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__47, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__47_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__47); +x_2 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__32, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__32_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__32); +x_3 = lean_array_push(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__50(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__49)); +x_2 = l_Lean_mkAtom(x_1); +return x_2; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__51(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__50, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__50_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__50); +x_2 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__48, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__48_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__48); +x_3 = lean_array_push(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__52(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__51, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__51_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__51); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__16)); +x_3 = lean_box(2); +x_4 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_2); +lean_ctor_set(x_4, 2, x_1); +return x_4; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__53(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__52, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__52_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__52); +x_2 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__13, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__13_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__13); +x_3 = lean_array_push(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__54(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__53, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__53_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__53); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__11)); +x_3 = lean_box(2); +x_4 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_2); +lean_ctor_set(x_4, 2, x_1); +return x_4; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__55(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__54, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__54_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__54); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__5)); +x_3 = lean_array_push(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__56(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__55, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__55_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__55); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__9)); +x_3 = lean_box(2); +x_4 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_2); +lean_ctor_set(x_4, 2, x_1); +return x_4; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__57(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__56, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__56_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__56); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__5)); +x_3 = lean_array_push(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__58(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__57, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__57_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__57); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__7)); +x_3 = lean_box(2); +x_4 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_2); +lean_ctor_set(x_4, 2, x_1); +return x_4; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__59(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__58, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__58_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__58); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__5)); +x_3 = lean_array_push(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__60(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__59, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__59_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__59); +x_2 = ((lean_object*)(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__4)); +x_3 = lean_box(2); +x_4 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_2); +lean_ctor_set(x_4, 2, x_1); +return x_4; +} +} +static lean_object* _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1(void) { +_start: +{ +lean_object* x_1; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__60, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__60_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__60); +return x_1; +} +} +LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00__private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge_go_spec__0___redArg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; uint8_t x_7; uint8_t x_18; +x_3 = lean_ctor_get(x_1, 0); +x_4 = lean_ctor_get(x_1, 1); +x_5 = lean_ctor_get(x_1, 2); +x_18 = !lean_is_exclusive(x_1); +if (x_18 == 0) +{ +x_6 = x_1; +x_7 = x_18; +goto block_17; +} +else +{ +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = x_18; +goto block_17; +} +block_17: +{ +uint8_t x_8; +x_8 = lean_nat_dec_lt(x_4, x_5); +if (x_8 == 0) +{ +lean_del_object(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec_ref(x_3); +return x_2; +} +else +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_9 = lean_unsigned_to_nat(1u); +x_10 = lean_nat_add(x_4, x_9); +lean_inc_ref(x_3); +if (x_7 == 0) +{ +lean_ctor_set(x_6, 1, x_10); +x_11 = x_6; +goto block_15; +} +else +{ +lean_object* x_16; +x_16 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_16, 0, x_3); +lean_ctor_set(x_16, 1, x_10); +lean_ctor_set(x_16, 2, x_5); +x_11 = x_16; +goto block_15; +} +block_15: +{ +lean_object* x_12; lean_object* x_13; +x_12 = lean_array_fget(x_3, x_4); +lean_dec(x_4); +lean_dec_ref(x_3); +x_13 = lean_array_push(x_2, x_12); +x_1 = x_11; +x_2 = x_13; +goto _start; +} +} +} +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge_go___redArg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_5 = lean_ctor_get(x_2, 1); +x_6 = lean_ctor_get(x_2, 2); +x_7 = lean_ctor_get(x_3, 1); +x_8 = lean_ctor_get(x_3, 2); +x_9 = lean_unsigned_to_nat(0u); +x_10 = l_Subarray_get___redArg(x_2, x_9); +x_11 = l_Subarray_get___redArg(x_3, x_9); +lean_inc_ref(x_1); +lean_inc(x_11); +lean_inc(x_10); +x_12 = lean_apply_2(x_1, x_10, x_11); +x_13 = lean_unbox(x_12); +if (x_13 == 0) +{ +lean_object* x_14; lean_object* x_15; uint8_t x_16; +lean_dec(x_10); +x_14 = lean_nat_sub(x_8, x_7); +x_15 = lean_unsigned_to_nat(1u); +x_16 = lean_nat_dec_lt(x_15, x_14); +lean_dec(x_14); +if (x_16 == 0) +{ +lean_object* x_17; lean_object* x_18; +lean_dec_ref(x_3); +lean_dec_ref(x_1); +x_17 = lean_array_push(x_4, x_11); +x_18 = l_WellFounded_opaqueFix_u2083___at___00__private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge_go_spec__0___redArg(x_2, x_17); +return x_18; +} +else +{ +lean_object* x_19; lean_object* x_20; +x_19 = l_Subarray_drop___redArg(x_3, x_15); +x_20 = lean_array_push(x_4, x_11); +x_3 = x_19; +x_4 = x_20; +goto _start; +} +} +else +{ +lean_object* x_22; lean_object* x_23; uint8_t x_24; +lean_dec(x_11); +x_22 = lean_nat_sub(x_6, x_5); +x_23 = lean_unsigned_to_nat(1u); +x_24 = lean_nat_dec_lt(x_23, x_22); +lean_dec(x_22); +if (x_24 == 0) +{ +lean_object* x_25; lean_object* x_26; +lean_dec_ref(x_2); +lean_dec_ref(x_1); +x_25 = lean_array_push(x_4, x_10); +x_26 = l_WellFounded_opaqueFix_u2083___at___00__private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge_go_spec__0___redArg(x_3, x_25); +return x_26; +} +else +{ +lean_object* x_27; lean_object* x_28; +x_27 = l_Subarray_drop___redArg(x_2, x_23); +x_28 = lean_array_push(x_4, x_10); +x_2 = x_27; +x_4 = x_28; +goto _start; +} +} +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge_go(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +lean_object* x_8; +x_8 = l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge_go___redArg(x_2, x_3, x_4, x_7); +return x_8; +} +} +LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00__private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge_go_spec__0(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; +x_7 = l_WellFounded_opaqueFix_u2083___at___00__private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge_go_spec__0___redArg(x_4, x_5); +return x_7; +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___redArg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; uint8_t x_6; +x_4 = lean_unsigned_to_nat(0u); +x_5 = lean_array_get_size(x_1); +x_6 = lean_nat_dec_lt(x_4, x_5); +if (x_6 == 0) +{ +lean_dec_ref(x_3); +lean_dec_ref(x_1); +return x_2; +} +else +{ +lean_object* x_7; uint8_t x_8; +x_7 = lean_array_get_size(x_2); +x_8 = lean_nat_dec_lt(x_4, x_7); +if (x_8 == 0) +{ +lean_dec_ref(x_3); +lean_dec_ref(x_2); +return x_1; +} +else +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_9 = l_Array_toSubarray___redArg(x_1, x_4, x_5); +x_10 = l_Array_toSubarray___redArg(x_2, x_4, x_7); +x_11 = lean_nat_add(x_5, x_7); +x_12 = lean_mk_empty_array_with_capacity(x_11); +lean_dec(x_11); +x_13 = l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge_go___redArg(x_3, x_9, x_10, x_12); +return x_13; +} +} +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; +x_5 = l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___redArg(x_2, x_3, x_4); +return x_5; +} +} +static lean_object* _init_l_Subarray_mergeSort___auto__1(void) { +_start: +{ +lean_object* x_1; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__60, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__60_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__60); +return x_1; +} +} +LEAN_EXPORT lean_object* l___private_Init_WFExtrinsicFix_0__WellFounded_opaqueFix_u2082___at___00Subarray_mergeSort_spec__0___redArg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; uint8_t x_7; uint8_t x_18; +x_3 = lean_ctor_get(x_1, 0); +x_4 = lean_ctor_get(x_1, 1); +x_5 = lean_ctor_get(x_1, 2); +x_18 = !lean_is_exclusive(x_1); +if (x_18 == 0) +{ +x_6 = x_1; +x_7 = x_18; +goto block_17; +} +else +{ +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = x_18; +goto block_17; +} +block_17: +{ +uint8_t x_8; +x_8 = lean_nat_dec_lt(x_4, x_5); +if (x_8 == 0) +{ +lean_del_object(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec_ref(x_3); +return x_2; +} +else +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_9 = lean_unsigned_to_nat(1u); +x_10 = lean_nat_add(x_4, x_9); +lean_inc_ref(x_3); +if (x_7 == 0) +{ +lean_ctor_set(x_6, 1, x_10); +x_11 = x_6; +goto block_15; +} +else +{ +lean_object* x_16; +x_16 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_16, 0, x_3); +lean_ctor_set(x_16, 1, x_10); +lean_ctor_set(x_16, 2, x_5); +x_11 = x_16; +goto block_15; +} +block_15: +{ +lean_object* x_12; lean_object* x_13; +x_12 = lean_array_fget(x_3, x_4); +lean_dec(x_4); +lean_dec_ref(x_3); +x_13 = lean_array_push(x_2, x_12); +x_1 = x_11; +x_2 = x_13; +goto _start; +} +} +} +} +} +LEAN_EXPORT lean_object* l_Subarray_mergeSort___redArg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_16; lean_object* x_17; uint8_t x_18; +x_3 = lean_ctor_get(x_1, 0); +x_4 = lean_ctor_get(x_1, 1); +x_5 = lean_ctor_get(x_1, 2); +x_16 = lean_unsigned_to_nat(1u); +x_17 = lean_nat_sub(x_5, x_4); +x_18 = lean_nat_dec_lt(x_16, x_17); +if (x_18 == 0) +{ +lean_object* x_19; lean_object* x_20; +lean_dec(x_17); +lean_dec_ref(x_2); +x_19 = ((lean_object*)(l_Subarray_mergeSort___redArg___closed__0)); +x_20 = l___private_Init_WFExtrinsicFix_0__WellFounded_opaqueFix_u2082___at___00Subarray_mergeSort_spec__0___redArg(x_1, x_19); +return x_20; +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_31; uint8_t x_32; +lean_inc(x_4); +lean_inc_ref(x_3); +lean_dec_ref(x_1); +x_21 = lean_nat_add(x_17, x_16); +x_22 = lean_nat_shiftr(x_21, x_16); +lean_dec(x_21); +x_31 = lean_unsigned_to_nat(0u); +x_32 = lean_nat_dec_le(x_22, x_17); +if (x_32 == 0) +{ +lean_inc(x_17); +x_23 = x_31; +x_24 = x_17; +goto block_30; +} +else +{ +lean_inc(x_22); +x_23 = x_31; +x_24 = x_22; +goto block_30; +} +block_30: +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t x_29; +x_25 = lean_nat_add(x_23, x_4); +x_26 = lean_nat_add(x_24, x_4); +lean_dec(x_24); +lean_inc_ref(x_3); +x_27 = l_Array_toSubarray___redArg(x_3, x_25, x_26); +x_28 = lean_unsigned_to_nat(0u); +x_29 = lean_nat_dec_le(x_22, x_28); +if (x_29 == 0) +{ +x_6 = x_27; +x_7 = x_22; +x_8 = x_17; +goto block_15; +} +else +{ +lean_dec(x_22); +x_6 = x_27; +x_7 = x_28; +x_8 = x_17; +goto block_15; +} +} +} +block_15: +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; +x_9 = lean_nat_add(x_7, x_4); +lean_dec(x_7); +x_10 = lean_nat_add(x_8, x_4); +lean_dec(x_4); +lean_dec(x_8); +x_11 = l_Array_toSubarray___redArg(x_3, x_9, x_10); +lean_inc_ref(x_2); +x_12 = l_Subarray_mergeSort___redArg(x_6, x_2); +lean_inc_ref(x_2); +x_13 = l_Subarray_mergeSort___redArg(x_11, x_2); +x_14 = l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___redArg(x_12, x_13, x_2); +return x_14; +} +} +} +LEAN_EXPORT lean_object* l_Subarray_mergeSort(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_Subarray_mergeSort___redArg(x_2, x_3); +return x_4; +} +} +LEAN_EXPORT lean_object* l___private_Init_WFExtrinsicFix_0__WellFounded_opaqueFix_u2082___at___00Subarray_mergeSort_spec__0(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; +x_6 = l___private_Init_WFExtrinsicFix_0__WellFounded_opaqueFix_u2082___at___00Subarray_mergeSort_spec__0___redArg(x_4, x_5); +return x_6; +} +} +static lean_object* _init_l_Array_mergeSort___auto__1(void) { +_start: +{ +lean_object* x_1; +x_1 = lean_obj_once(&l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__60, &l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__60_once, _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1___closed__60); +return x_1; +} +} +LEAN_EXPORT lean_object* l_Array_mergeSort___redArg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_3 = lean_unsigned_to_nat(0u); +x_4 = lean_array_get_size(x_1); +x_5 = l_Array_toSubarray___redArg(x_1, x_3, x_4); +x_6 = l_Subarray_mergeSort___redArg(x_5, x_2); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Array_mergeSort(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; +x_4 = lean_unsigned_to_nat(0u); +x_5 = lean_array_get_size(x_2); +x_6 = l_Array_toSubarray___redArg(x_2, x_4, x_5); +x_7 = l_Subarray_mergeSort___redArg(x_6, x_3); +return x_7; +} +} +lean_object* runtime_initialize_Init_Data_Array_Subarray_Split(uint8_t builtin); +lean_object* runtime_initialize_Init_Data_Slice_Array(uint8_t builtin); +lean_object* runtime_initialize_Init_Omega(uint8_t builtin); +static bool _G_runtime_initialized = false; +LEAN_EXPORT lean_object* runtime_initialize_Init_Data_Array_Sort_Basic(uint8_t builtin) { +lean_object * res; +if (_G_runtime_initialized) return lean_io_result_mk_ok(lean_box(0)); +_G_runtime_initialized = true; +res = runtime_initialize_Init_Data_Array_Subarray_Split(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Init_Data_Slice_Array(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Init_Omega(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +return lean_io_result_mk_ok(lean_box(0)); +} +static bool _G_meta_initialized = false; +LEAN_EXPORT lean_object* meta_initialize_Init_Data_Array_Sort_Basic(uint8_t builtin) { +lean_object * res; +if (_G_meta_initialized) return lean_io_result_mk_ok(lean_box(0)); +_G_meta_initialized = true; +l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1 = _init_l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1(); +lean_mark_persistent(l___private_Init_Data_Array_Sort_Basic_0__Array_MergeSort_Internal_merge___auto__1); +l_Subarray_mergeSort___auto__1 = _init_l_Subarray_mergeSort___auto__1(); +lean_mark_persistent(l_Subarray_mergeSort___auto__1); +l_Array_mergeSort___auto__1 = _init_l_Array_mergeSort___auto__1(); +lean_mark_persistent(l_Array_mergeSort___auto__1); +return lean_io_result_mk_ok(lean_box(0)); +} +lean_object* initialize_Init_Data_Array_Subarray_Split(uint8_t builtin); +lean_object* initialize_Init_Data_Slice_Array(uint8_t builtin); +lean_object* initialize_Init_Omega(uint8_t builtin); +static bool _G_initialized = false; +LEAN_EXPORT lean_object* initialize_Init_Data_Array_Sort_Basic(uint8_t builtin) { +lean_object * res; +if (_G_initialized) return lean_io_result_mk_ok(lean_box(0)); +_G_initialized = true; +res = initialize_Init_Data_Array_Subarray_Split(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Init_Data_Slice_Array(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Init_Omega(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Init_Data_Array_Sort_Basic(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = meta_initialize_Init_Data_Array_Sort_Basic(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +return initialize_Init_Data_Array_Sort_Basic(builtin); +} +#ifdef __cplusplus +} +#endif diff --git a/stage0/stdlib/Init/Data/Array/Sort/Lemmas.c b/stage0/stdlib/Init/Data/Array/Sort/Lemmas.c new file mode 100644 index 0000000000..a79a5faa68 --- /dev/null +++ b/stage0/stdlib/Init/Data/Array/Sort/Lemmas.c @@ -0,0 +1,306 @@ +// Lean compiler output +// Module: Init.Data.Array.Sort.Lemmas +// Imports: public import Init.Data.Array.Sort.Basic public import Init.Data.List.Sort.Basic public import Init.Data.Array.Perm import all Init.Data.Array.Sort.Basic import all Init.Data.List.Sort.Basic import Init.Data.List.Sort.Lemmas import Init.Data.Slice.Array.Lemmas import Init.Data.Slice.List.Lemmas import Init.Data.Array.Bootstrap import Init.Data.Array.Lemmas import Init.Data.Array.MapIdx import Init.ByCases +#include +#if defined(__clang__) +#pragma clang diagnostic ignored "-Wunused-parameter" +#pragma clang diagnostic ignored "-Wunused-label" +#elif defined(__GNUC__) && !defined(__CLANG__) +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wunused-label" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif +#ifdef __cplusplus +extern "C" { +#endif +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Sort_Lemmas_0__List_merge_match__1_splitter___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Sort_Lemmas_0__List_merge_match__1_splitter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Sort_Lemmas_0__List_mergeSort_match__1_splitter___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Sort_Lemmas_0__List_mergeSort_match__1_splitter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Sort_Lemmas_0__List_merge_match__1_splitter___redArg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_6; +lean_dec(x_5); +lean_dec(x_4); +x_6 = lean_apply_1(x_3, x_2); +return x_6; +} +else +{ +lean_dec(x_3); +if (lean_obj_tag(x_2) == 0) +{ +lean_object* x_7; +lean_dec(x_5); +x_7 = lean_apply_2(x_4, x_1, lean_box(0)); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_dec(x_4); +x_8 = lean_ctor_get(x_1, 0); +lean_inc(x_8); +x_9 = lean_ctor_get(x_1, 1); +lean_inc(x_9); +lean_dec_ref(x_1); +x_10 = lean_ctor_get(x_2, 0); +lean_inc(x_10); +x_11 = lean_ctor_get(x_2, 1); +lean_inc(x_11); +lean_dec_ref(x_2); +x_12 = lean_apply_4(x_5, x_8, x_9, x_10, x_11); +return x_12; +} +} +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Sort_Lemmas_0__List_merge_match__1_splitter(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +if (lean_obj_tag(x_3) == 0) +{ +lean_object* x_8; +lean_dec(x_7); +lean_dec(x_6); +x_8 = lean_apply_1(x_5, x_4); +return x_8; +} +else +{ +lean_dec(x_5); +if (lean_obj_tag(x_4) == 0) +{ +lean_object* x_9; +lean_dec(x_7); +x_9 = lean_apply_2(x_6, x_3, lean_box(0)); +return x_9; +} +else +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; +lean_dec(x_6); +x_10 = lean_ctor_get(x_3, 0); +lean_inc(x_10); +x_11 = lean_ctor_get(x_3, 1); +lean_inc(x_11); +lean_dec_ref(x_3); +x_12 = lean_ctor_get(x_4, 0); +lean_inc(x_12); +x_13 = lean_ctor_get(x_4, 1); +lean_inc(x_13); +lean_dec_ref(x_4); +x_14 = lean_apply_4(x_7, x_10, x_11, x_12, x_13); +return x_14; +} +} +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Sort_Lemmas_0__List_mergeSort_match__1_splitter___redArg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_6; +lean_dec(x_5); +lean_dec(x_4); +x_6 = lean_apply_1(x_3, x_2); +return x_6; +} +else +{ +lean_object* x_7; +lean_dec(x_3); +x_7 = lean_ctor_get(x_1, 1); +if (lean_obj_tag(x_7) == 0) +{ +lean_object* x_8; lean_object* x_9; +lean_dec(x_5); +x_8 = lean_ctor_get(x_1, 0); +lean_inc(x_8); +lean_dec_ref(x_1); +x_9 = lean_apply_2(x_4, x_8, x_2); +return x_9; +} +else +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +lean_inc_ref(x_7); +lean_dec(x_4); +x_10 = lean_ctor_get(x_1, 0); +lean_inc(x_10); +lean_dec_ref(x_1); +x_11 = lean_ctor_get(x_7, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_7, 1); +lean_inc(x_12); +lean_dec_ref(x_7); +x_13 = lean_apply_4(x_5, x_10, x_11, x_12, x_2); +return x_13; +} +} +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Sort_Lemmas_0__List_mergeSort_match__1_splitter(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +lean_object* x_8; +x_8 = l___private_Init_Data_Array_Sort_Lemmas_0__List_mergeSort_match__1_splitter___redArg(x_3, x_4, x_5, x_6, x_7); +return x_8; +} +} +lean_object* runtime_initialize_Init_Data_Array_Sort_Basic(uint8_t builtin); +lean_object* runtime_initialize_Init_Data_List_Sort_Basic(uint8_t builtin); +lean_object* runtime_initialize_Init_Data_Array_Perm(uint8_t builtin); +lean_object* runtime_initialize_Init_Data_Array_Sort_Basic(uint8_t builtin); +lean_object* runtime_initialize_Init_Data_List_Sort_Basic(uint8_t builtin); +lean_object* runtime_initialize_Init_Data_List_Sort_Lemmas(uint8_t builtin); +lean_object* runtime_initialize_Init_Data_Slice_Array_Lemmas(uint8_t builtin); +lean_object* runtime_initialize_Init_Data_Slice_List_Lemmas(uint8_t builtin); +lean_object* runtime_initialize_Init_Data_Array_Bootstrap(uint8_t builtin); +lean_object* runtime_initialize_Init_Data_Array_Lemmas(uint8_t builtin); +lean_object* runtime_initialize_Init_Data_Array_MapIdx(uint8_t builtin); +lean_object* runtime_initialize_Init_ByCases(uint8_t builtin); +static bool _G_runtime_initialized = false; +LEAN_EXPORT lean_object* runtime_initialize_Init_Data_Array_Sort_Lemmas(uint8_t builtin) { +lean_object * res; +if (_G_runtime_initialized) return lean_io_result_mk_ok(lean_box(0)); +_G_runtime_initialized = true; +res = runtime_initialize_Init_Data_Array_Sort_Basic(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Init_Data_List_Sort_Basic(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Init_Data_Array_Perm(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Init_Data_Array_Sort_Basic(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Init_Data_List_Sort_Basic(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Init_Data_List_Sort_Lemmas(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Init_Data_Slice_Array_Lemmas(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Init_Data_Slice_List_Lemmas(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Init_Data_Array_Bootstrap(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Init_Data_Array_Lemmas(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Init_Data_Array_MapIdx(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Init_ByCases(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +return lean_io_result_mk_ok(lean_box(0)); +} +static bool _G_meta_initialized = false; +LEAN_EXPORT lean_object* meta_initialize_Init_Data_Array_Sort_Lemmas(uint8_t builtin) { +lean_object * res; +if (_G_meta_initialized) return lean_io_result_mk_ok(lean_box(0)); +_G_meta_initialized = true; +return lean_io_result_mk_ok(lean_box(0)); +} +lean_object* initialize_Init_Data_Array_Sort_Basic(uint8_t builtin); +lean_object* initialize_Init_Data_List_Sort_Basic(uint8_t builtin); +lean_object* initialize_Init_Data_Array_Perm(uint8_t builtin); +lean_object* initialize_Init_Data_Array_Sort_Basic(uint8_t builtin); +lean_object* initialize_Init_Data_List_Sort_Basic(uint8_t builtin); +lean_object* initialize_Init_Data_List_Sort_Lemmas(uint8_t builtin); +lean_object* initialize_Init_Data_Slice_Array_Lemmas(uint8_t builtin); +lean_object* initialize_Init_Data_Slice_List_Lemmas(uint8_t builtin); +lean_object* initialize_Init_Data_Array_Bootstrap(uint8_t builtin); +lean_object* initialize_Init_Data_Array_Lemmas(uint8_t builtin); +lean_object* initialize_Init_Data_Array_MapIdx(uint8_t builtin); +lean_object* initialize_Init_ByCases(uint8_t builtin); +static bool _G_initialized = false; +LEAN_EXPORT lean_object* initialize_Init_Data_Array_Sort_Lemmas(uint8_t builtin) { +lean_object * res; +if (_G_initialized) return lean_io_result_mk_ok(lean_box(0)); +_G_initialized = true; +res = initialize_Init_Data_Array_Sort_Basic(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Init_Data_List_Sort_Basic(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Init_Data_Array_Perm(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Init_Data_Array_Sort_Basic(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Init_Data_List_Sort_Basic(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Init_Data_List_Sort_Lemmas(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Init_Data_Slice_Array_Lemmas(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Init_Data_Slice_List_Lemmas(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Init_Data_Array_Bootstrap(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Init_Data_Array_Lemmas(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Init_Data_Array_MapIdx(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Init_ByCases(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Init_Data_Array_Sort_Lemmas(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = meta_initialize_Init_Data_Array_Sort_Lemmas(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +return initialize_Init_Data_Array_Sort_Lemmas(builtin); +} +#ifdef __cplusplus +} +#endif diff --git a/stage0/stdlib/Init/Data/Char/Basic.c b/stage0/stdlib/Init/Data/Char/Basic.c index cdb15a9850..45bf68fb01 100644 --- a/stage0/stdlib/Init/Data/Char/Basic.c +++ b/stage0/stdlib/Init/Data/Char/Basic.c @@ -42,6 +42,8 @@ LEAN_EXPORT uint8_t l_Char_isAlpha(uint32_t); LEAN_EXPORT lean_object* l_Char_isAlpha___boxed(lean_object*); LEAN_EXPORT uint8_t l_Char_isDigit(uint32_t); LEAN_EXPORT lean_object* l_Char_isDigit___boxed(lean_object*); +LEAN_EXPORT uint8_t l_Char_isHexDigit(uint32_t); +LEAN_EXPORT lean_object* l_Char_isHexDigit___boxed(lean_object*); LEAN_EXPORT uint8_t l_Char_isAlphanum(uint32_t); LEAN_EXPORT lean_object* l_Char_isAlphanum___boxed(lean_object*); uint32_t lean_uint32_add(uint32_t, uint32_t); @@ -370,6 +372,88 @@ x_4 = lean_box(x_3); return x_4; } } +LEAN_EXPORT uint8_t l_Char_isHexDigit(uint32_t x_1) { +_start: +{ +uint8_t x_2; uint8_t x_8; uint32_t x_14; uint8_t x_15; +x_14 = 48; +x_15 = lean_uint32_dec_le(x_14, x_1); +if (x_15 == 0) +{ +x_8 = x_15; +goto block_13; +} +else +{ +uint32_t x_16; uint8_t x_17; +x_16 = 57; +x_17 = lean_uint32_dec_le(x_1, x_16); +x_8 = x_17; +goto block_13; +} +block_7: +{ +if (x_2 == 0) +{ +uint32_t x_3; uint8_t x_4; +x_3 = 65; +x_4 = lean_uint32_dec_le(x_3, x_1); +if (x_4 == 0) +{ +return x_4; +} +else +{ +uint32_t x_5; uint8_t x_6; +x_5 = 70; +x_6 = lean_uint32_dec_le(x_1, x_5); +return x_6; +} +} +else +{ +return x_2; +} +} +block_13: +{ +if (x_8 == 0) +{ +uint32_t x_9; uint8_t x_10; +x_9 = 97; +x_10 = lean_uint32_dec_le(x_9, x_1); +if (x_10 == 0) +{ +x_2 = x_10; +goto block_7; +} +else +{ +uint32_t x_11; uint8_t x_12; +x_11 = 102; +x_12 = lean_uint32_dec_le(x_1, x_11); +x_2 = x_12; +goto block_7; +} +} +else +{ +return x_8; +} +} +} +} +LEAN_EXPORT lean_object* l_Char_isHexDigit___boxed(lean_object* x_1) { +_start: +{ +uint32_t x_2; uint8_t x_3; lean_object* x_4; +x_2 = lean_unbox_uint32(x_1); +lean_dec(x_1); +x_3 = l_Char_isHexDigit(x_2); +x_4 = lean_box(x_3); +return x_4; +} +} LEAN_EXPORT uint8_t l_Char_isAlphanum(uint32_t x_1) { _start: { diff --git a/stage0/stdlib/Init/Data/Order/PackageFactories.c b/stage0/stdlib/Init/Data/Order/PackageFactories.c index a015b83f5b..828ca6387e 100644 --- a/stage0/stdlib/Init/Data/Order/PackageFactories.c +++ b/stage0/stdlib/Init/Data/Order/PackageFactories.c @@ -3369,9 +3369,36 @@ return x_5; LEAN_EXPORT uint8_t l_Std_FactoryInstances_decidableLTOfLE(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { _start: { -uint8_t x_8; -x_8 = l_Std_FactoryInstances_decidableLTOfLE___redArg(x_4, x_6, x_7); -return x_8; +lean_object* x_8; lean_object* x_9; uint8_t x_10; +lean_inc_ref(x_4); +lean_inc(x_6); +lean_inc(x_7); +x_8 = lean_apply_2(x_4, x_7, x_6); +x_9 = lean_apply_2(x_4, x_6, x_7); +x_10 = lean_unbox(x_9); +if (x_10 == 0) +{ +uint8_t x_11; +x_11 = lean_unbox(x_9); +return x_11; +} +else +{ +uint8_t x_12; +x_12 = lean_unbox(x_8); +if (x_12 == 0) +{ +uint8_t x_13; +x_13 = lean_unbox(x_9); +return x_13; +} +else +{ +uint8_t x_14; +x_14 = 0; +return x_14; +} +} } } LEAN_EXPORT lean_object* l_Std_FactoryInstances_decidableLTOfLE___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { @@ -9034,9 +9061,59 @@ return x_9; LEAN_EXPORT lean_object* l_Std_PreorderPackage_ofLE(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_3; -x_3 = l_Std_PreorderPackage_ofLE___redArg(x_2); -return x_3; +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; uint8_t x_9; uint8_t x_14; +x_3 = lean_ctor_get(x_2, 0); +x_4 = lean_ctor_get(x_2, 1); +x_5 = lean_ctor_get(x_2, 2); +x_6 = lean_ctor_get(x_2, 3); +x_7 = lean_ctor_get(x_2, 4); +x_14 = !lean_is_exclusive(x_2); +if (x_14 == 0) +{ +x_8 = x_2; +x_9 = x_14; +goto block_13; +} +else +{ +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_dec(x_2); +x_8 = lean_box(0); +x_9 = x_14; +goto block_13; +} +block_13: +{ +lean_object* x_10; +if (x_9 == 0) +{ +lean_ctor_set(x_8, 3, x_4); +lean_ctor_set(x_8, 2, x_6); +lean_ctor_set(x_8, 1, x_5); +x_10 = x_8; +goto block_11; +} +else +{ +lean_object* x_12; +x_12 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_12, 0, x_3); +lean_ctor_set(x_12, 1, x_5); +lean_ctor_set(x_12, 2, x_6); +lean_ctor_set(x_12, 3, x_4); +lean_ctor_set(x_12, 4, x_7); +x_10 = x_12; +goto block_11; +} +block_11: +{ +return x_10; +} +} } } static lean_object* _init_l_Std_Packages_PartialOrderOfLEArgs_le__antisymm___autoParam___closed__1(void) { @@ -9524,17 +9601,117 @@ return x_1; LEAN_EXPORT lean_object* l_Std_PartialOrderPackage_ofLE___redArg(lean_object* x_1) { _start: { -lean_object* x_2; -x_2 = l_Std_PreorderPackage_ofLE___redArg(x_1); -return x_2; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; uint8_t x_8; uint8_t x_13; +x_2 = lean_ctor_get(x_1, 0); +x_3 = lean_ctor_get(x_1, 1); +x_4 = lean_ctor_get(x_1, 2); +x_5 = lean_ctor_get(x_1, 3); +x_6 = lean_ctor_get(x_1, 4); +x_13 = !lean_is_exclusive(x_1); +if (x_13 == 0) +{ +x_7 = x_1; +x_8 = x_13; +goto block_12; +} +else +{ +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +lean_dec(x_1); +x_7 = lean_box(0); +x_8 = x_13; +goto block_12; +} +block_12: +{ +lean_object* x_9; +if (x_8 == 0) +{ +lean_ctor_set(x_7, 3, x_3); +lean_ctor_set(x_7, 2, x_5); +lean_ctor_set(x_7, 1, x_4); +x_9 = x_7; +goto block_10; +} +else +{ +lean_object* x_11; +x_11 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_11, 0, x_2); +lean_ctor_set(x_11, 1, x_4); +lean_ctor_set(x_11, 2, x_5); +lean_ctor_set(x_11, 3, x_3); +lean_ctor_set(x_11, 4, x_6); +x_9 = x_11; +goto block_10; +} +block_10: +{ +return x_9; +} +} } } LEAN_EXPORT lean_object* l_Std_PartialOrderPackage_ofLE(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_3; -x_3 = l_Std_PreorderPackage_ofLE___redArg(x_2); -return x_3; +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; uint8_t x_9; uint8_t x_14; +x_3 = lean_ctor_get(x_2, 0); +x_4 = lean_ctor_get(x_2, 1); +x_5 = lean_ctor_get(x_2, 2); +x_6 = lean_ctor_get(x_2, 3); +x_7 = lean_ctor_get(x_2, 4); +x_14 = !lean_is_exclusive(x_2); +if (x_14 == 0) +{ +x_8 = x_2; +x_9 = x_14; +goto block_13; +} +else +{ +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_dec(x_2); +x_8 = lean_box(0); +x_9 = x_14; +goto block_13; +} +block_13: +{ +lean_object* x_10; +if (x_9 == 0) +{ +lean_ctor_set(x_8, 3, x_4); +lean_ctor_set(x_8, 2, x_6); +lean_ctor_set(x_8, 1, x_5); +x_10 = x_8; +goto block_11; +} +else +{ +lean_object* x_12; +x_12 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_12, 0, x_3); +lean_ctor_set(x_12, 1, x_5); +lean_ctor_set(x_12, 2, x_6); +lean_ctor_set(x_12, 3, x_4); +lean_ctor_set(x_12, 4, x_7); +x_10 = x_12; +goto block_11; +} +block_11: +{ +return x_10; +} +} } } LEAN_EXPORT uint8_t l_Std_FactoryInstances_instOrdOfDecidableLE___redArg___lam__0(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -11322,15 +11499,15 @@ return x_1; LEAN_EXPORT lean_object* l_Std_LinearPreorderPackage_ofLE___redArg(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; uint8_t x_5; uint8_t x_11; +lean_object* x_2; lean_object* x_3; lean_object* x_4; uint8_t x_5; uint8_t x_22; x_2 = lean_ctor_get(x_1, 0); x_3 = lean_ctor_get(x_1, 1); -x_11 = !lean_is_exclusive(x_1); -if (x_11 == 0) +x_22 = !lean_is_exclusive(x_1); +if (x_22 == 0) { x_4 = x_1; -x_5 = x_11; -goto block_10; +x_5 = x_22; +goto block_21; } else { @@ -11338,31 +11515,82 @@ lean_inc(x_3); lean_inc(x_2); lean_dec(x_1); x_4 = lean_box(0); -x_5 = x_11; -goto block_10; +x_5 = x_22; +goto block_21; } -block_10: +block_21: { -lean_object* x_6; lean_object* x_7; -x_6 = l_Std_PreorderPackage_ofLE___redArg(x_2); -if (x_5 == 0) +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; uint8_t x_12; uint8_t x_20; +x_6 = lean_ctor_get(x_2, 0); +x_7 = lean_ctor_get(x_2, 1); +x_8 = lean_ctor_get(x_2, 2); +x_9 = lean_ctor_get(x_2, 3); +x_10 = lean_ctor_get(x_2, 4); +x_20 = !lean_is_exclusive(x_2); +if (x_20 == 0) { -lean_ctor_set(x_4, 0, x_6); -x_7 = x_4; -goto block_8; +x_11 = x_2; +x_12 = x_20; +goto block_19; } else { -lean_object* x_9; -x_9 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_9, 0, x_6); -lean_ctor_set(x_9, 1, x_3); -x_7 = x_9; -goto block_8; +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_dec(x_2); +x_11 = lean_box(0); +x_12 = x_20; +goto block_19; } -block_8: +block_19: { -return x_7; +lean_object* x_13; +if (x_12 == 0) +{ +lean_ctor_set(x_11, 3, x_7); +lean_ctor_set(x_11, 2, x_9); +lean_ctor_set(x_11, 1, x_8); +x_13 = x_11; +goto block_17; +} +else +{ +lean_object* x_18; +x_18 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_18, 0, x_6); +lean_ctor_set(x_18, 1, x_8); +lean_ctor_set(x_18, 2, x_9); +lean_ctor_set(x_18, 3, x_7); +lean_ctor_set(x_18, 4, x_10); +x_13 = x_18; +goto block_17; +} +block_17: +{ +lean_object* x_14; +if (x_5 == 0) +{ +lean_ctor_set(x_4, 0, x_13); +x_14 = x_4; +goto block_15; +} +else +{ +lean_object* x_16; +x_16 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_16, 0, x_13); +lean_ctor_set(x_16, 1, x_3); +x_14 = x_16; +goto block_15; +} +block_15: +{ +return x_14; +} +} } } } @@ -11370,9 +11598,100 @@ return x_7; LEAN_EXPORT lean_object* l_Std_LinearPreorderPackage_ofLE(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_3; -x_3 = l_Std_LinearPreorderPackage_ofLE___redArg(x_2); -return x_3; +lean_object* x_3; lean_object* x_4; lean_object* x_5; uint8_t x_6; uint8_t x_23; +x_3 = lean_ctor_get(x_2, 0); +x_4 = lean_ctor_get(x_2, 1); +x_23 = !lean_is_exclusive(x_2); +if (x_23 == 0) +{ +x_5 = x_2; +x_6 = x_23; +goto block_22; +} +else +{ +lean_inc(x_4); +lean_inc(x_3); +lean_dec(x_2); +x_5 = lean_box(0); +x_6 = x_23; +goto block_22; +} +block_22: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; uint8_t x_21; +x_7 = lean_ctor_get(x_3, 0); +x_8 = lean_ctor_get(x_3, 1); +x_9 = lean_ctor_get(x_3, 2); +x_10 = lean_ctor_get(x_3, 3); +x_11 = lean_ctor_get(x_3, 4); +x_21 = !lean_is_exclusive(x_3); +if (x_21 == 0) +{ +x_12 = x_3; +x_13 = x_21; +goto block_20; +} +else +{ +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_dec(x_3); +x_12 = lean_box(0); +x_13 = x_21; +goto block_20; +} +block_20: +{ +lean_object* x_14; +if (x_13 == 0) +{ +lean_ctor_set(x_12, 3, x_8); +lean_ctor_set(x_12, 2, x_10); +lean_ctor_set(x_12, 1, x_9); +x_14 = x_12; +goto block_18; +} +else +{ +lean_object* x_19; +x_19 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_19, 0, x_7); +lean_ctor_set(x_19, 1, x_9); +lean_ctor_set(x_19, 2, x_10); +lean_ctor_set(x_19, 3, x_8); +lean_ctor_set(x_19, 4, x_11); +x_14 = x_19; +goto block_18; +} +block_18: +{ +lean_object* x_15; +if (x_6 == 0) +{ +lean_ctor_set(x_5, 0, x_14); +x_15 = x_5; +goto block_16; +} +else +{ +lean_object* x_17; +x_17 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_17, 0, x_14); +lean_ctor_set(x_17, 1, x_4); +x_15 = x_17; +goto block_16; +} +block_16: +{ +return x_15; +} +} +} +} } } LEAN_EXPORT lean_object* l_Std_LinearOrderPackage_toPartialOrderPackage___redArg(lean_object* x_1) { @@ -13510,50 +13829,148 @@ return x_1; LEAN_EXPORT lean_object* l_Std_LinearOrderPackage_ofLE___redArg(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; uint8_t x_6; uint8_t x_12; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; uint8_t x_7; uint8_t x_33; x_2 = lean_ctor_get(x_1, 0); -x_3 = lean_ctor_get(x_1, 1); -x_4 = lean_ctor_get(x_1, 2); -x_12 = !lean_is_exclusive(x_1); -if (x_12 == 0) +lean_inc_ref(x_2); +x_3 = lean_ctor_get(x_2, 0); +lean_inc_ref(x_3); +x_4 = lean_ctor_get(x_1, 1); +x_5 = lean_ctor_get(x_1, 2); +x_33 = !lean_is_exclusive(x_1); +if (x_33 == 0) { -x_5 = x_1; -x_6 = x_12; -goto block_11; +lean_object* x_34; +x_34 = lean_ctor_get(x_1, 0); +lean_dec(x_34); +x_6 = x_1; +x_7 = x_33; +goto block_32; } else { +lean_inc(x_5); lean_inc(x_4); -lean_inc(x_3); -lean_inc(x_2); lean_dec(x_1); -x_5 = lean_box(0); -x_6 = x_12; -goto block_11; +x_6 = lean_box(0); +x_7 = x_33; +goto block_32; } -block_11: +block_32: { -lean_object* x_7; lean_object* x_8; -x_7 = l_Std_LinearPreorderPackage_ofLE___redArg(x_2); -if (x_6 == 0) +lean_object* x_8; lean_object* x_9; uint8_t x_10; uint8_t x_30; +x_8 = lean_ctor_get(x_2, 1); +x_30 = !lean_is_exclusive(x_2); +if (x_30 == 0) { -lean_ctor_set(x_5, 0, x_7); -x_8 = x_5; -goto block_9; +lean_object* x_31; +x_31 = lean_ctor_get(x_2, 0); +lean_dec(x_31); +x_9 = x_2; +x_10 = x_30; +goto block_29; } else { -lean_object* x_10; -x_10 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_10, 0, x_7); -lean_ctor_set(x_10, 1, x_3); -lean_ctor_set(x_10, 2, x_4); -x_8 = x_10; -goto block_9; +lean_inc(x_8); +lean_dec(x_2); +x_9 = lean_box(0); +x_10 = x_30; +goto block_29; } -block_9: +block_29: { -return x_8; +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; uint8_t x_28; +x_11 = lean_ctor_get(x_3, 0); +x_12 = lean_ctor_get(x_3, 1); +x_13 = lean_ctor_get(x_3, 2); +x_14 = lean_ctor_get(x_3, 3); +x_15 = lean_ctor_get(x_3, 4); +x_28 = !lean_is_exclusive(x_3); +if (x_28 == 0) +{ +x_16 = x_3; +x_17 = x_28; +goto block_27; +} +else +{ +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_11); +lean_dec(x_3); +x_16 = lean_box(0); +x_17 = x_28; +goto block_27; +} +block_27: +{ +lean_object* x_18; +if (x_17 == 0) +{ +lean_ctor_set(x_16, 3, x_12); +lean_ctor_set(x_16, 2, x_14); +lean_ctor_set(x_16, 1, x_13); +x_18 = x_16; +goto block_25; +} +else +{ +lean_object* x_26; +x_26 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_26, 0, x_11); +lean_ctor_set(x_26, 1, x_13); +lean_ctor_set(x_26, 2, x_14); +lean_ctor_set(x_26, 3, x_12); +lean_ctor_set(x_26, 4, x_15); +x_18 = x_26; +goto block_25; +} +block_25: +{ +lean_object* x_19; +if (x_10 == 0) +{ +lean_ctor_set(x_9, 0, x_18); +x_19 = x_9; +goto block_23; +} +else +{ +lean_object* x_24; +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_18); +lean_ctor_set(x_24, 1, x_8); +x_19 = x_24; +goto block_23; +} +block_23: +{ +lean_object* x_20; +if (x_7 == 0) +{ +lean_ctor_set(x_6, 0, x_19); +x_20 = x_6; +goto block_21; +} +else +{ +lean_object* x_22; +x_22 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_22, 0, x_19); +lean_ctor_set(x_22, 1, x_4); +lean_ctor_set(x_22, 2, x_5); +x_20 = x_22; +goto block_21; +} +block_21: +{ +return x_20; +} +} +} +} } } } @@ -13561,9 +13978,150 @@ return x_8; LEAN_EXPORT lean_object* l_Std_LinearOrderPackage_ofLE(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_3; -x_3 = l_Std_LinearOrderPackage_ofLE___redArg(x_2); -return x_3; +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; uint8_t x_8; uint8_t x_34; +x_3 = lean_ctor_get(x_2, 0); +lean_inc_ref(x_3); +x_4 = lean_ctor_get(x_3, 0); +lean_inc_ref(x_4); +x_5 = lean_ctor_get(x_2, 1); +x_6 = lean_ctor_get(x_2, 2); +x_34 = !lean_is_exclusive(x_2); +if (x_34 == 0) +{ +lean_object* x_35; +x_35 = lean_ctor_get(x_2, 0); +lean_dec(x_35); +x_7 = x_2; +x_8 = x_34; +goto block_33; +} +else +{ +lean_inc(x_6); +lean_inc(x_5); +lean_dec(x_2); +x_7 = lean_box(0); +x_8 = x_34; +goto block_33; +} +block_33: +{ +lean_object* x_9; lean_object* x_10; uint8_t x_11; uint8_t x_31; +x_9 = lean_ctor_get(x_3, 1); +x_31 = !lean_is_exclusive(x_3); +if (x_31 == 0) +{ +lean_object* x_32; +x_32 = lean_ctor_get(x_3, 0); +lean_dec(x_32); +x_10 = x_3; +x_11 = x_31; +goto block_30; +} +else +{ +lean_inc(x_9); +lean_dec(x_3); +x_10 = lean_box(0); +x_11 = x_31; +goto block_30; +} +block_30: +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; uint8_t x_29; +x_12 = lean_ctor_get(x_4, 0); +x_13 = lean_ctor_get(x_4, 1); +x_14 = lean_ctor_get(x_4, 2); +x_15 = lean_ctor_get(x_4, 3); +x_16 = lean_ctor_get(x_4, 4); +x_29 = !lean_is_exclusive(x_4); +if (x_29 == 0) +{ +x_17 = x_4; +x_18 = x_29; +goto block_28; +} +else +{ +lean_inc(x_16); +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_dec(x_4); +x_17 = lean_box(0); +x_18 = x_29; +goto block_28; +} +block_28: +{ +lean_object* x_19; +if (x_18 == 0) +{ +lean_ctor_set(x_17, 3, x_13); +lean_ctor_set(x_17, 2, x_15); +lean_ctor_set(x_17, 1, x_14); +x_19 = x_17; +goto block_26; +} +else +{ +lean_object* x_27; +x_27 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_27, 0, x_12); +lean_ctor_set(x_27, 1, x_14); +lean_ctor_set(x_27, 2, x_15); +lean_ctor_set(x_27, 3, x_13); +lean_ctor_set(x_27, 4, x_16); +x_19 = x_27; +goto block_26; +} +block_26: +{ +lean_object* x_20; +if (x_11 == 0) +{ +lean_ctor_set(x_10, 0, x_19); +x_20 = x_10; +goto block_24; +} +else +{ +lean_object* x_25; +x_25 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_25, 0, x_19); +lean_ctor_set(x_25, 1, x_9); +x_20 = x_25; +goto block_24; +} +block_24: +{ +lean_object* x_21; +if (x_8 == 0) +{ +lean_ctor_set(x_7, 0, x_20); +x_21 = x_7; +goto block_22; +} +else +{ +lean_object* x_23; +x_23 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_23, 0, x_20); +lean_ctor_set(x_23, 1, x_5); +lean_ctor_set(x_23, 2, x_6); +x_21 = x_23; +goto block_22; +} +block_22: +{ +return x_21; +} +} +} +} +} +} } } static lean_object* _init_l_Std_Packages_LinearPreorderOfOrdArgs_ord___autoParam(void) { @@ -16823,9 +17381,27 @@ return x_2; LEAN_EXPORT lean_object* l_Std_LinearPreorderPackage_ofOrd(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_3; -x_3 = l_Std_LinearPreorderPackage_ofOrd___redArg(x_2); -return x_3; +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_3 = lean_ctor_get(x_2, 0); +x_4 = lean_ctor_get(x_2, 1); +x_5 = lean_ctor_get(x_2, 2); +x_6 = lean_ctor_get(x_2, 3); +x_7 = lean_ctor_get(x_2, 4); +x_8 = lean_ctor_get(x_2, 5); +lean_inc_ref(x_7); +lean_inc_ref(x_5); +lean_inc_ref(x_8); +x_9 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_9, 0, x_4); +lean_ctor_set(x_9, 1, x_6); +lean_ctor_set(x_9, 2, x_8); +lean_ctor_set(x_9, 3, x_5); +lean_ctor_set(x_9, 4, x_7); +lean_inc_ref(x_3); +x_10 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_10, 0, x_9); +lean_ctor_set(x_10, 1, x_3); +return x_10; } } LEAN_EXPORT lean_object* l_Std_LinearPreorderPackage_ofOrd___boxed(lean_object* x_1, lean_object* x_2) { @@ -18778,16 +19354,16 @@ return x_1; LEAN_EXPORT lean_object* l_Std_LinearOrderPackage_ofOrd___redArg(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; uint8_t x_6; uint8_t x_12; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; uint8_t x_6; uint8_t x_19; x_2 = lean_ctor_get(x_1, 0); x_3 = lean_ctor_get(x_1, 1); x_4 = lean_ctor_get(x_1, 2); -x_12 = !lean_is_exclusive(x_1); -if (x_12 == 0) +x_19 = !lean_is_exclusive(x_1); +if (x_19 == 0) { x_5 = x_1; -x_6 = x_12; -goto block_11; +x_6 = x_19; +goto block_18; } else { @@ -18796,33 +19372,53 @@ lean_inc(x_3); lean_inc(x_2); lean_dec(x_1); x_5 = lean_box(0); -x_6 = x_12; -goto block_11; +x_6 = x_19; +goto block_18; } -block_11: +block_18: { -lean_object* x_7; lean_object* x_8; -x_7 = l_Std_LinearPreorderPackage_ofOrd___redArg(x_2); +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_7 = lean_ctor_get(x_2, 0); +lean_inc_ref(x_7); +x_8 = lean_ctor_get(x_2, 1); +lean_inc(x_8); +x_9 = lean_ctor_get(x_2, 2); +lean_inc_ref(x_9); +x_10 = lean_ctor_get(x_2, 3); +lean_inc(x_10); +x_11 = lean_ctor_get(x_2, 4); +lean_inc_ref(x_11); +x_12 = lean_ctor_get(x_2, 5); +lean_inc_ref(x_12); lean_dec_ref(x_2); +x_13 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_13, 0, x_8); +lean_ctor_set(x_13, 1, x_10); +lean_ctor_set(x_13, 2, x_12); +lean_ctor_set(x_13, 3, x_9); +lean_ctor_set(x_13, 4, x_11); +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_13); +lean_ctor_set(x_14, 1, x_7); if (x_6 == 0) { -lean_ctor_set(x_5, 0, x_7); -x_8 = x_5; -goto block_9; +lean_ctor_set(x_5, 0, x_14); +x_15 = x_5; +goto block_16; } else { -lean_object* x_10; -x_10 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_10, 0, x_7); -lean_ctor_set(x_10, 1, x_3); -lean_ctor_set(x_10, 2, x_4); -x_8 = x_10; -goto block_9; +lean_object* x_17; +x_17 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_17, 0, x_14); +lean_ctor_set(x_17, 1, x_3); +lean_ctor_set(x_17, 2, x_4); +x_15 = x_17; +goto block_16; } -block_9: +block_16: { -return x_8; +return x_15; } } } @@ -18830,9 +19426,73 @@ return x_8; LEAN_EXPORT lean_object* l_Std_LinearOrderPackage_ofOrd(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_3; -x_3 = l_Std_LinearOrderPackage_ofOrd___redArg(x_2); -return x_3; +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; uint8_t x_7; uint8_t x_20; +x_3 = lean_ctor_get(x_2, 0); +x_4 = lean_ctor_get(x_2, 1); +x_5 = lean_ctor_get(x_2, 2); +x_20 = !lean_is_exclusive(x_2); +if (x_20 == 0) +{ +x_6 = x_2; +x_7 = x_20; +goto block_19; +} +else +{ +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_dec(x_2); +x_6 = lean_box(0); +x_7 = x_20; +goto block_19; +} +block_19: +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_8 = lean_ctor_get(x_3, 0); +lean_inc_ref(x_8); +x_9 = lean_ctor_get(x_3, 1); +lean_inc(x_9); +x_10 = lean_ctor_get(x_3, 2); +lean_inc_ref(x_10); +x_11 = lean_ctor_get(x_3, 3); +lean_inc(x_11); +x_12 = lean_ctor_get(x_3, 4); +lean_inc_ref(x_12); +x_13 = lean_ctor_get(x_3, 5); +lean_inc_ref(x_13); +lean_dec_ref(x_3); +x_14 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_14, 0, x_9); +lean_ctor_set(x_14, 1, x_11); +lean_ctor_set(x_14, 2, x_13); +lean_ctor_set(x_14, 3, x_10); +lean_ctor_set(x_14, 4, x_12); +x_15 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_15, 0, x_14); +lean_ctor_set(x_15, 1, x_8); +if (x_7 == 0) +{ +lean_ctor_set(x_6, 0, x_15); +x_16 = x_6; +goto block_17; +} +else +{ +lean_object* x_18; +x_18 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_18, 0, x_15); +lean_ctor_set(x_18, 1, x_4); +lean_ctor_set(x_18, 2, x_5); +x_16 = x_18; +goto block_17; +} +block_17: +{ +return x_16; +} +} } } lean_object* runtime_initialize_Init_Data_Order_LemmasExtra(uint8_t builtin); diff --git a/stage0/stdlib/Init/Data/String/OrderInstances.c b/stage0/stdlib/Init/Data/String/OrderInstances.c index 728ee7571f..f25857e681 100644 --- a/stage0/stdlib/Init/Data/String/OrderInstances.c +++ b/stage0/stdlib/Init/Data/String/OrderInstances.c @@ -318,18 +318,15 @@ static lean_object* l_String_Pos_Raw_instLinearOrderPackage___closed__3; lean_object* l_String_instDecidableLtRaw___boxed(lean_object*, lean_object*); static const lean_closure_object l_String_Pos_Raw_instLinearOrderPackage___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_closure_object) + sizeof(void*)*0, .m_other = 0, .m_tag = 245}, .m_fun = (void*)l_String_instDecidableLtRaw___boxed, .m_arity = 2, .m_num_fixed = 0, .m_objs = {} }; static const lean_object* l_String_Pos_Raw_instLinearOrderPackage___closed__4 = (const lean_object*)&l_String_Pos_Raw_instLinearOrderPackage___closed__4_value; -static lean_once_cell_t l_String_Pos_Raw_instLinearOrderPackage___closed__5_once = LEAN_ONCE_CELL_INITIALIZER; -static lean_object* l_String_Pos_Raw_instLinearOrderPackage___closed__5; lean_object* l_Std_FactoryInstances_instOrdOfDecidableLE___redArg___lam__0___boxed(lean_object*, lean_object*, lean_object*); -static const lean_closure_object l_String_Pos_Raw_instLinearOrderPackage___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_closure_object) + sizeof(void*)*1, .m_other = 0, .m_tag = 245}, .m_fun = (void*)l_Std_FactoryInstances_instOrdOfDecidableLE___redArg___lam__0___boxed, .m_arity = 3, .m_num_fixed = 1, .m_objs = {((lean_object*)&l_String_Pos_Raw_instLinearOrderPackage___closed__2_value)} }; -static const lean_object* l_String_Pos_Raw_instLinearOrderPackage___closed__6 = (const lean_object*)&l_String_Pos_Raw_instLinearOrderPackage___closed__6_value; +static const lean_closure_object l_String_Pos_Raw_instLinearOrderPackage___closed__5_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_closure_object) + sizeof(void*)*1, .m_other = 0, .m_tag = 245}, .m_fun = (void*)l_Std_FactoryInstances_instOrdOfDecidableLE___redArg___lam__0___boxed, .m_arity = 3, .m_num_fixed = 1, .m_objs = {((lean_object*)&l_String_Pos_Raw_instLinearOrderPackage___closed__2_value)} }; +static const lean_object* l_String_Pos_Raw_instLinearOrderPackage___closed__5 = (const lean_object*)&l_String_Pos_Raw_instLinearOrderPackage___closed__5_value; +static lean_once_cell_t l_String_Pos_Raw_instLinearOrderPackage___closed__6_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l_String_Pos_Raw_instLinearOrderPackage___closed__6; static lean_once_cell_t l_String_Pos_Raw_instLinearOrderPackage___closed__7_once = LEAN_ONCE_CELL_INITIALIZER; static lean_object* l_String_Pos_Raw_instLinearOrderPackage___closed__7; static lean_once_cell_t l_String_Pos_Raw_instLinearOrderPackage___closed__8_once = LEAN_ONCE_CELL_INITIALIZER; static lean_object* l_String_Pos_Raw_instLinearOrderPackage___closed__8; -lean_object* l_Std_LinearOrderPackage_ofLE___redArg(lean_object*); -static lean_once_cell_t l_String_Pos_Raw_instLinearOrderPackage___closed__9_once = LEAN_ONCE_CELL_INITIALIZER; -static lean_object* l_String_Pos_Raw_instLinearOrderPackage___closed__9; LEAN_EXPORT lean_object* l_String_Pos_Raw_instLinearOrderPackage; LEAN_EXPORT lean_object* l_String_Pos_instToIntCoOfNatIntHAddCastUtf8ByteSize(lean_object*); LEAN_EXPORT lean_object* l_String_Pos_instToIntCoOfNatIntHAddCastUtf8ByteSize___boxed(lean_object*); @@ -806,14 +803,14 @@ lean_closure_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_String_Pos_Raw_instLinearOrderPackage___closed__5(void) { +static lean_object* _init_l_String_Pos_Raw_instLinearOrderPackage___closed__6(void) { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; x_1 = ((lean_object*)(l_String_Pos_Raw_instLinearOrderPackage___closed__4)); -x_2 = lean_obj_once(&l_String_Pos_Raw_instLinearOrderPackage___closed__3, &l_String_Pos_Raw_instLinearOrderPackage___closed__3_once, _init_l_String_Pos_Raw_instLinearOrderPackage___closed__3); -x_3 = lean_box(0); -x_4 = ((lean_object*)(l_String_Pos_Raw_instLinearOrderPackage___closed__2)); +x_2 = ((lean_object*)(l_String_Pos_Raw_instLinearOrderPackage___closed__2)); +x_3 = lean_obj_once(&l_String_Pos_Raw_instLinearOrderPackage___closed__3, &l_String_Pos_Raw_instLinearOrderPackage___closed__3_once, _init_l_String_Pos_Raw_instLinearOrderPackage___closed__3); +x_4 = lean_box(0); x_5 = lean_box(0); x_6 = lean_alloc_ctor(0, 5, 0); lean_ctor_set(x_6, 0, x_5); @@ -828,8 +825,8 @@ static lean_object* _init_l_String_Pos_Raw_instLinearOrderPackage___closed__7(vo _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = ((lean_object*)(l_String_Pos_Raw_instLinearOrderPackage___closed__6)); -x_2 = lean_obj_once(&l_String_Pos_Raw_instLinearOrderPackage___closed__5, &l_String_Pos_Raw_instLinearOrderPackage___closed__5_once, _init_l_String_Pos_Raw_instLinearOrderPackage___closed__5); +x_1 = ((lean_object*)(l_String_Pos_Raw_instLinearOrderPackage___closed__5)); +x_2 = lean_obj_once(&l_String_Pos_Raw_instLinearOrderPackage___closed__6, &l_String_Pos_Raw_instLinearOrderPackage___closed__6_once, _init_l_String_Pos_Raw_instLinearOrderPackage___closed__6); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_2); lean_ctor_set(x_3, 1, x_1); @@ -850,20 +847,11 @@ lean_ctor_set(x_4, 2, x_1); return x_4; } } -static lean_object* _init_l_String_Pos_Raw_instLinearOrderPackage___closed__9(void) { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_obj_once(&l_String_Pos_Raw_instLinearOrderPackage___closed__8, &l_String_Pos_Raw_instLinearOrderPackage___closed__8_once, _init_l_String_Pos_Raw_instLinearOrderPackage___closed__8); -x_2 = l_Std_LinearOrderPackage_ofLE___redArg(x_1); -return x_2; -} -} static lean_object* _init_l_String_Pos_Raw_instLinearOrderPackage(void) { _start: { lean_object* x_1; -x_1 = lean_obj_once(&l_String_Pos_Raw_instLinearOrderPackage___closed__9, &l_String_Pos_Raw_instLinearOrderPackage___closed__9_once, _init_l_String_Pos_Raw_instLinearOrderPackage___closed__9); +x_1 = lean_obj_once(&l_String_Pos_Raw_instLinearOrderPackage___closed__8, &l_String_Pos_Raw_instLinearOrderPackage___closed__8_once, _init_l_String_Pos_Raw_instLinearOrderPackage___closed__8); return x_1; } } @@ -902,7 +890,7 @@ return x_2; LEAN_EXPORT lean_object* l_String_Pos_instLinearOrderPackage(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_2 = ((lean_object*)(l_String_Pos_Raw_instLinearOrderPackage___closed__0)); x_3 = ((lean_object*)(l_String_Pos_Raw_instLinearOrderPackage___closed__1)); x_4 = lean_box(0); @@ -918,23 +906,22 @@ lean_closure_set(x_8, 0, x_7); x_9 = lean_alloc_closure((void*)(l_String_instDecidableLtPos___boxed), 3, 1); lean_closure_set(x_9, 0, x_1); lean_inc_ref(x_5); -x_10 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_10, 0, x_4); -lean_ctor_set(x_10, 1, x_5); -lean_ctor_set(x_10, 2, x_6); -lean_ctor_set(x_10, 3, x_8); -lean_ctor_set(x_10, 4, x_9); -x_11 = lean_alloc_closure((void*)(l_Std_FactoryInstances_instOrdOfDecidableLE___redArg___lam__0___boxed), 3, 1); -lean_closure_set(x_11, 0, x_5); +x_10 = lean_alloc_closure((void*)(l_Std_FactoryInstances_instOrdOfDecidableLE___redArg___lam__0___boxed), 3, 1); +lean_closure_set(x_10, 0, x_5); +x_11 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_11, 0, x_4); +lean_ctor_set(x_11, 1, x_6); +lean_ctor_set(x_11, 2, x_8); +lean_ctor_set(x_11, 3, x_5); +lean_ctor_set(x_11, 4, x_9); x_12 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_12, 0, x_10); -lean_ctor_set(x_12, 1, x_11); +lean_ctor_set(x_12, 0, x_11); +lean_ctor_set(x_12, 1, x_10); x_13 = lean_alloc_ctor(0, 3, 0); lean_ctor_set(x_13, 0, x_12); lean_ctor_set(x_13, 1, x_2); lean_ctor_set(x_13, 2, x_3); -x_14 = l_Std_LinearOrderPackage_ofLE___redArg(x_13); -return x_14; +return x_13; } } LEAN_EXPORT lean_object* l_String_Slice_Pos_instToIntCoOfNatIntHAddCastUtf8ByteSize(lean_object* x_1) { @@ -972,7 +959,7 @@ return x_2; LEAN_EXPORT lean_object* l_String_Slice_Pos_instLinearOrderPackage(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_2 = ((lean_object*)(l_String_Pos_Raw_instLinearOrderPackage___closed__0)); x_3 = ((lean_object*)(l_String_Pos_Raw_instLinearOrderPackage___closed__1)); x_4 = lean_box(0); @@ -988,23 +975,22 @@ lean_closure_set(x_8, 0, x_7); x_9 = lean_alloc_closure((void*)(l_String_instDecidableLtPos__1___boxed), 3, 1); lean_closure_set(x_9, 0, x_1); lean_inc_ref(x_5); -x_10 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_10, 0, x_4); -lean_ctor_set(x_10, 1, x_5); -lean_ctor_set(x_10, 2, x_6); -lean_ctor_set(x_10, 3, x_8); -lean_ctor_set(x_10, 4, x_9); -x_11 = lean_alloc_closure((void*)(l_Std_FactoryInstances_instOrdOfDecidableLE___redArg___lam__0___boxed), 3, 1); -lean_closure_set(x_11, 0, x_5); +x_10 = lean_alloc_closure((void*)(l_Std_FactoryInstances_instOrdOfDecidableLE___redArg___lam__0___boxed), 3, 1); +lean_closure_set(x_10, 0, x_5); +x_11 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_11, 0, x_4); +lean_ctor_set(x_11, 1, x_6); +lean_ctor_set(x_11, 2, x_8); +lean_ctor_set(x_11, 3, x_5); +lean_ctor_set(x_11, 4, x_9); x_12 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_12, 0, x_10); -lean_ctor_set(x_12, 1, x_11); +lean_ctor_set(x_12, 0, x_11); +lean_ctor_set(x_12, 1, x_10); x_13 = lean_alloc_ctor(0, 3, 0); lean_ctor_set(x_13, 0, x_12); lean_ctor_set(x_13, 1, x_2); lean_ctor_set(x_13, 2, x_3); -x_14 = l_Std_LinearOrderPackage_ofLE___redArg(x_13); -return x_14; +return x_13; } } lean_object* runtime_initialize_Init_Data_String_Defs(uint8_t builtin); diff --git a/stage0/stdlib/Lean/Compiler.c b/stage0/stdlib/Lean/Compiler.c index 35914d71d4..a85a7a92b8 100644 --- a/stage0/stdlib/Lean/Compiler.c +++ b/stage0/stdlib/Lean/Compiler.c @@ -1,6 +1,6 @@ // Lean compiler output // Module: Lean.Compiler -// Imports: public import Lean.Compiler.InlineAttrs public import Lean.Compiler.Specialize public import Lean.Compiler.ClosedTermCache public import Lean.Compiler.ExternAttr public import Lean.Compiler.ImplementedByAttr public import Lean.Compiler.NeverExtractAttr public import Lean.Compiler.IR public import Lean.Compiler.CSimpAttr public import Lean.Compiler.FFI public import Lean.Compiler.MetaAttr public import Lean.Compiler.NoncomputableAttr public import Lean.Compiler.Main public import Lean.Compiler.Old +// Imports: public import Lean.Compiler.InlineAttrs public import Lean.Compiler.Specialize public import Lean.Compiler.ClosedTermCache public import Lean.Compiler.ExternAttr public import Lean.Compiler.ImplementedByAttr public import Lean.Compiler.NeverExtractAttr public import Lean.Compiler.IR public import Lean.Compiler.CSimpAttr public import Lean.Compiler.FFI public import Lean.Compiler.MetaAttr public import Lean.Compiler.NoncomputableAttr public import Lean.Compiler.Main public import Lean.Compiler.NameDemangling public import Lean.Compiler.Old #include #if defined(__clang__) #pragma clang diagnostic ignored "-Wunused-parameter" @@ -25,6 +25,7 @@ lean_object* runtime_initialize_Lean_Compiler_FFI(uint8_t builtin); lean_object* runtime_initialize_Lean_Compiler_MetaAttr(uint8_t builtin); lean_object* runtime_initialize_Lean_Compiler_NoncomputableAttr(uint8_t builtin); lean_object* runtime_initialize_Lean_Compiler_Main(uint8_t builtin); +lean_object* runtime_initialize_Lean_Compiler_NameDemangling(uint8_t builtin); lean_object* runtime_initialize_Lean_Compiler_Old(uint8_t builtin); static bool _G_runtime_initialized = false; LEAN_EXPORT lean_object* runtime_initialize_Lean_Compiler(uint8_t builtin) { @@ -79,6 +80,10 @@ res = runtime_initialize_Lean_Compiler_Main(builtin) ; if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +res = runtime_initialize_Lean_Compiler_NameDemangling(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); res = runtime_initialize_Lean_Compiler_Old(builtin) ; if (lean_io_result_is_error(res)) return res; @@ -104,6 +109,7 @@ lean_object* initialize_Lean_Compiler_FFI(uint8_t builtin); lean_object* initialize_Lean_Compiler_MetaAttr(uint8_t builtin); lean_object* initialize_Lean_Compiler_NoncomputableAttr(uint8_t builtin); lean_object* initialize_Lean_Compiler_Main(uint8_t builtin); +lean_object* initialize_Lean_Compiler_NameDemangling(uint8_t builtin); lean_object* initialize_Lean_Compiler_Old(uint8_t builtin); static bool _G_initialized = false; LEAN_EXPORT lean_object* initialize_Lean_Compiler(uint8_t builtin) { @@ -158,6 +164,10 @@ res = initialize_Lean_Compiler_Main(builtin) ; if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +res = initialize_Lean_Compiler_NameDemangling(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); res = initialize_Lean_Compiler_Old(builtin) ; if (lean_io_result_is_error(res)) return res; diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Simp/ConstantFold.c b/stage0/stdlib/Lean/Compiler/LCNF/Simp/ConstantFold.c index 454510bc14..fc55d2461f 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Simp/ConstantFold.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Simp/ConstantFold.c @@ -93,8 +93,6 @@ LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_ConstantFold_0__Lea LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_ConstantFold_0__Lean_Compiler_LCNF_Simp_ConstantFold_getLitAux___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_ConstantFold_0__Lean_Compiler_LCNF_Simp_ConstantFold_getLitAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_ConstantFold_0__Lean_Compiler_LCNF_Simp_ConstantFold_getLitAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLit___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance_spec__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLit___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance_spec__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static const lean_string_object l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 3, .m_capacity = 3, .m_length = 2, .m_data = "_x"}; @@ -102,8 +100,8 @@ static const lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperIns lean_object* l_Lean_Name_mkStr1(lean_object*); static const lean_ctor_object l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1___closed__0_value),LEAN_SCALAR_PTR_LITERAL(181, 1, 28, 251, 11, 9, 217, 106)}}; static const lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1___closed__1 = (const lean_object*)&l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1___closed__1_value; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Char_ofNat___boxed(lean_object*); @@ -189,21 +187,23 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_getPseudoListLit LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_getPseudoListLiteral___redArg___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_getPseudoListLiteral(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_getPseudoListLiteral___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static const lean_string_object l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 6, .m_capacity = 6, .m_length = 5, .m_data = "Array"}; -static const lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___closed__0 = (const lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___closed__0_value; -static const lean_string_object l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 5, .m_capacity = 5, .m_length = 4, .m_data = "push"}; -static const lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___closed__1 = (const lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___closed__1_value; -static const lean_ctor_object l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___closed__2_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___closed__0_value),LEAN_SCALAR_PTR_LITERAL(81, 46, 193, 1, 46, 43, 107, 121)}}; -static const lean_ctor_object l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___closed__2_value_aux_0),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___closed__1_value),LEAN_SCALAR_PTR_LITERAL(72, 153, 248, 33, 206, 118, 72, 33)}}; -static const lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___closed__2 = (const lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___closed__2_value; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLit___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLit___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static const lean_string_object l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 6, .m_capacity = 6, .m_length = 5, .m_data = "Array"}; +static const lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___closed__0 = (const lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___closed__0_value; +static const lean_string_object l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 5, .m_capacity = 5, .m_length = 4, .m_data = "push"}; +static const lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___closed__1 = (const lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___closed__1_value; +static const lean_ctor_object l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___closed__2_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___closed__0_value),LEAN_SCALAR_PTR_LITERAL(81, 46, 193, 1, 46, 43, 107, 121)}}; +static const lean_ctor_object l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___closed__2_value_aux_0),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___closed__1_value),LEAN_SCALAR_PTR_LITERAL(72, 153, 248, 33, 206, 118, 72, 33)}}; +static const lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___closed__2 = (const lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___closed__2_value; uint8_t lean_usize_dec_lt(size_t, size_t); lean_object* lean_array_uget_borrowed(lean_object*, size_t); size_t lean_usize_add(size_t, size_t); -LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0(lean_object*, lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1(lean_object*, lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static const lean_string_object l_Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "mkEmpty"}; static const lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral___closed__0 = (const lean_object*)&l_Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral___closed__0_value; -static const lean_ctor_object l_Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral___closed__1_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___closed__0_value),LEAN_SCALAR_PTR_LITERAL(81, 46, 193, 1, 46, 43, 107, 121)}}; +static const lean_ctor_object l_Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral___closed__1_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___closed__0_value),LEAN_SCALAR_PTR_LITERAL(81, 46, 193, 1, 46, 43, 107, 121)}}; static const lean_ctor_object l_Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral___closed__1_value_aux_0),((lean_object*)&l_Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral___closed__0_value),LEAN_SCALAR_PTR_LITERAL(242, 217, 122, 134, 168, 122, 153, 10)}}; static const lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral___closed__1 = (const lean_object*)&l_Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral___closed__1_value; size_t lean_array_size(lean_object*); @@ -1703,7 +1703,7 @@ static const lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_stringFolders__ static const lean_ctor_object l_Lean_Compiler_LCNF_Simp_ConstantFold_stringFolders___closed__13_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 0}, .m_objs = {((lean_object*)&l_Lean_Compiler_LCNF_Simp_ConstantFold_stringFolders___closed__10_value),((lean_object*)&l_Lean_Compiler_LCNF_Simp_ConstantFold_stringFolders___closed__12_value)}}; static const lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_stringFolders___closed__13 = (const lean_object*)&l_Lean_Compiler_LCNF_Simp_ConstantFold_stringFolders___closed__13_value; static const lean_ctor_object l_Lean_Compiler_LCNF_Simp_ConstantFold_stringFolders___closed__14_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l_Lean_Compiler_LCNF_Simp_ConstantFold_relationFolders___closed__52_value),LEAN_SCALAR_PTR_LITERAL(6, 130, 56, 8, 41, 104, 134, 43)}}; -static const lean_ctor_object l_Lean_Compiler_LCNF_Simp_ConstantFold_stringFolders___closed__14_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Compiler_LCNF_Simp_ConstantFold_stringFolders___closed__14_value_aux_0),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___closed__1_value),LEAN_SCALAR_PTR_LITERAL(235, 214, 172, 180, 192, 17, 133, 66)}}; +static const lean_ctor_object l_Lean_Compiler_LCNF_Simp_ConstantFold_stringFolders___closed__14_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Compiler_LCNF_Simp_ConstantFold_stringFolders___closed__14_value_aux_0),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___closed__1_value),LEAN_SCALAR_PTR_LITERAL(235, 214, 172, 180, 192, 17, 133, 66)}}; static const lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_stringFolders___closed__14 = (const lean_object*)&l_Lean_Compiler_LCNF_Simp_ConstantFold_stringFolders___closed__14_value; lean_object* l_String_push___boxed(lean_object*, lean_object*); static const lean_closure_object l_Lean_Compiler_LCNF_Simp_ConstantFold_stringFolders___closed__15_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_closure_object) + sizeof(void*)*0, .m_other = 0, .m_tag = 245}, .m_fun = (void*)l_String_push___boxed, .m_arity = 2, .m_num_fixed = 0, .m_objs = {} }; @@ -3476,27 +3476,6 @@ lean_dec(x_2); return x_10; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLit___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance_spec__0(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { -_start: -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_9 = l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatLit___redArg(x_1); -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -lean_dec_ref(x_9); -x_11 = l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLetDecl(x_10, x_2, x_3, x_4, x_5, x_6, x_7); -return x_11; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLit___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance_spec__0___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLit___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance_spec__0(x_1, x_2, x_3, x_4, x_5, x_6, x_7); -lean_dec(x_3); -return x_9; -} -} LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__0(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { _start: { @@ -3519,133 +3498,134 @@ lean_dec(x_2); return x_9; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { _start: { -lean_object* x_10; lean_object* x_11; lean_object* x_12; -x_10 = lean_apply_1(x_1, x_3); -x_11 = ((lean_object*)(l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1___closed__1)); -x_12 = l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLit___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance_spec__0(x_10, x_11, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_12) == 0) +lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_11 = lean_apply_1(x_1, x_4); +x_12 = ((lean_object*)(l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1___closed__1)); +x_13 = l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLit___redArg(x_2, x_11, x_12, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_13) == 0) { -lean_object* x_13; lean_object* x_14; uint8_t x_15; uint8_t x_26; -x_13 = lean_ctor_get(x_12, 0); -x_26 = !lean_is_exclusive(x_12); -if (x_26 == 0) +lean_object* x_14; lean_object* x_15; uint8_t x_16; uint8_t x_27; +x_14 = lean_ctor_get(x_13, 0); +x_27 = !lean_is_exclusive(x_13); +if (x_27 == 0) { -x_14 = x_12; -x_15 = x_26; -goto block_25; +x_15 = x_13; +x_16 = x_27; +goto block_26; } else { -lean_inc(x_13); -lean_dec(x_12); -x_14 = lean_box(0); -x_15 = x_26; -goto block_25; +lean_inc(x_14); +lean_dec(x_13); +x_15 = lean_box(0); +x_16 = x_27; +goto block_26; } -block_25: +block_26: { -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_16 = lean_box(0); -x_17 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_17, 0, x_13); -x_18 = lean_unsigned_to_nat(1u); -x_19 = lean_mk_empty_array_with_capacity(x_18); -x_20 = lean_array_push(x_19, x_17); -x_21 = lean_alloc_ctor(3, 3, 0); -lean_ctor_set(x_21, 0, x_2); -lean_ctor_set(x_21, 1, x_16); -lean_ctor_set(x_21, 2, x_20); -if (x_15 == 0) +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_17 = lean_box(0); +x_18 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_18, 0, x_14); +x_19 = lean_unsigned_to_nat(1u); +x_20 = lean_mk_empty_array_with_capacity(x_19); +x_21 = lean_array_push(x_20, x_18); +x_22 = lean_alloc_ctor(3, 3, 0); +lean_ctor_set(x_22, 0, x_3); +lean_ctor_set(x_22, 1, x_17); +lean_ctor_set(x_22, 2, x_21); +if (x_16 == 0) { -lean_ctor_set(x_14, 0, x_21); -x_22 = x_14; -goto block_23; +lean_ctor_set(x_15, 0, x_22); +x_23 = x_15; +goto block_24; } else { -lean_object* x_24; -x_24 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_24, 0, x_21); -x_22 = x_24; -goto block_23; +lean_object* x_25; +x_25 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_25, 0, x_22); +x_23 = x_25; +goto block_24; } -block_23: +block_24: { -return x_22; +return x_23; } } } else { -lean_object* x_27; lean_object* x_28; uint8_t x_29; uint8_t x_34; -lean_dec(x_2); -x_27 = lean_ctor_get(x_12, 0); -x_34 = !lean_is_exclusive(x_12); -if (x_34 == 0) +lean_object* x_28; lean_object* x_29; uint8_t x_30; uint8_t x_35; +lean_dec(x_3); +x_28 = lean_ctor_get(x_13, 0); +x_35 = !lean_is_exclusive(x_13); +if (x_35 == 0) { -x_28 = x_12; -x_29 = x_34; -goto block_33; +x_29 = x_13; +x_30 = x_35; +goto block_34; } else { -lean_inc(x_27); -lean_dec(x_12); -x_28 = lean_box(0); -x_29 = x_34; -goto block_33; +lean_inc(x_28); +lean_dec(x_13); +x_29 = lean_box(0); +x_30 = x_35; +goto block_34; } -block_33: +block_34: { -lean_object* x_30; -if (x_29 == 0) +lean_object* x_31; +if (x_30 == 0) { -x_30 = x_28; -goto block_31; +x_31 = x_29; +goto block_32; } else { -lean_object* x_32; -x_32 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_32, 0, x_27); -x_30 = x_32; -goto block_31; +lean_object* x_33; +x_33 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_33, 0, x_28); +x_31 = x_33; +goto block_32; } -block_31: +block_32: { -return x_30; +return x_31; } } } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { _start: { -lean_object* x_10; -x_10 = l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -lean_dec(x_4); -return x_10; +lean_object* x_11; +x_11 = l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_11; } } LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_4; lean_object* x_5; lean_object* x_6; +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_inc(x_2); x_4 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__0___boxed), 8, 2); lean_closure_set(x_4, 0, x_1); lean_closure_set(x_4, 1, x_2); -x_5 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1___boxed), 9, 2); -lean_closure_set(x_5, 0, x_3); -lean_closure_set(x_5, 1, x_2); -x_6 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_6, 0, x_4); -lean_ctor_set(x_6, 1, x_5); -return x_6; +x_5 = ((lean_object*)(l_Lean_Compiler_LCNF_Simp_ConstantFold_instLiteralNat)); +x_6 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1___boxed), 10, 3); +lean_closure_set(x_6, 0, x_3); +lean_closure_set(x_6, 1, x_5); +lean_closure_set(x_6, 2, x_2); +x_7 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_7, 0, x_4); +lean_ctor_set(x_7, 1, x_6); +return x_7; } } LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { @@ -4663,7 +4643,28 @@ lean_dec_ref(x_2); return x_7; } } -LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0(lean_object* x_1, lean_object* x_2, lean_object* x_3, size_t x_4, size_t x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLit___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_9 = l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatLit___redArg(x_1); +x_10 = lean_ctor_get(x_9, 0); +lean_inc(x_10); +lean_dec_ref(x_9); +x_11 = l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLetDecl(x_10, x_2, x_3, x_4, x_5, x_6, x_7); +return x_11; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLit___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +_start: +{ +lean_object* x_9; +x_9 = l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLit___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_3); +return x_9; +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, size_t x_4, size_t x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { _start: { uint8_t x_13; @@ -4686,7 +4687,7 @@ else lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; x_15 = ((lean_object*)(l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1___closed__1)); x_16 = lean_array_uget_borrowed(x_3, x_5); -x_17 = ((lean_object*)(l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___closed__2)); +x_17 = ((lean_object*)(l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___closed__2)); x_18 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_18, 0, x_6); lean_inc(x_16); @@ -4733,7 +4734,7 @@ return x_26; } } } -LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12) { +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12) { _start: { size_t x_13; size_t x_14; lean_object* x_15; @@ -4741,7 +4742,7 @@ x_13 = lean_unbox_usize(x_4); lean_dec(x_4); x_14 = lean_unbox_usize(x_5); lean_dec(x_5); -x_15 = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0(x_1, x_2, x_3, x_13, x_14, x_6, x_7, x_8, x_9, x_10, x_11); +x_15 = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1(x_1, x_2, x_3, x_13, x_14, x_6, x_7, x_8, x_9, x_10, x_11); lean_dec(x_7); lean_dec_ref(x_3); return x_15; @@ -4757,7 +4758,7 @@ lean_inc(x_8); lean_inc_ref(x_7); lean_inc(x_6); lean_inc_ref(x_5); -x_12 = l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLit___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance_spec__0(x_10, x_11, x_4, x_5, x_6, x_7, x_8); +x_12 = l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLit___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0(x_10, x_11, x_4, x_5, x_6, x_7, x_8); if (lean_obj_tag(x_12) == 0) { lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; @@ -4796,7 +4797,7 @@ lean_inc(x_25); lean_dec_ref(x_24); x_26 = lean_array_size(x_1); x_27 = 0; -x_28 = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0(x_17, x_16, x_1, x_26, x_27, x_25, x_4, x_5, x_6, x_7, x_8); +x_28 = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__1(x_17, x_16, x_1, x_26, x_27, x_25, x_4, x_5, x_6, x_7, x_8); if (lean_obj_tag(x_28) == 0) { lean_object* x_29; lean_object* x_30; uint8_t x_31; uint8_t x_38; @@ -24667,7 +24668,7 @@ else lean_object* x_42; lean_object* x_43; lean_del_object(x_30); x_42 = ((lean_object*)(l_Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance___redArg___lam__1___closed__1)); -x_43 = l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLit___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkNatWrapperInstance_spec__0(x_35, x_42, x_5, x_6, x_7, x_8, x_9); +x_43 = l_Lean_Compiler_LCNF_Simp_ConstantFold_mkAuxLit___at___00Lean_Compiler_LCNF_Simp_ConstantFold_mkPseudoArrayLiteral_spec__0(x_35, x_42, x_5, x_6, x_7, x_8, x_9); if (lean_obj_tag(x_43) == 0) { lean_object* x_44; lean_object* x_45; uint8_t x_46; uint8_t x_64; diff --git a/stage0/stdlib/Lean/Compiler/NameDemangling.c b/stage0/stdlib/Lean/Compiler/NameDemangling.c new file mode 100644 index 0000000000..4d7996c0b3 --- /dev/null +++ b/stage0/stdlib/Lean/Compiler/NameDemangling.c @@ -0,0 +1,6452 @@ +// Lean compiler output +// Module: Lean.Compiler.NameDemangling +// Imports: import Init.While import Init.Data.String.TakeDrop import Init.Data.String.Search import Init.Data.String.Iterate import Lean.Data.NameTrie public import Lean.Compiler.NameMangling +#include +#if defined(__clang__) +#pragma clang diagnostic ignored "-Wunused-parameter" +#pragma clang diagnostic ignored "-Wunused-label" +#elif defined(__GNUC__) && !defined(__CLANG__) +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wunused-label" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif +#ifdef __cplusplus +extern "C" { +#endif +lean_object* lean_string_utf8_byte_size(lean_object*); +uint8_t lean_nat_dec_le(lean_object*, lean_object*); +uint8_t lean_string_memcmp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_String_Slice_pos_x21(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_String_dropPrefix_x3f___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_dropPrefix_x3f_spec__0___redArg(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_String_dropPrefix_x3f___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_dropPrefix_x3f_spec__0___redArg___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_String_dropPrefix_x3f___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_dropPrefix_x3f_spec__0(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_String_dropPrefix_x3f___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_dropPrefix_x3f_spec__0___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_String_Slice_toString(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_dropPrefix_x3f(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_dropPrefix_x3f___boxed(lean_object*, lean_object*); +lean_object* lean_nat_add(lean_object*, lean_object*); +lean_object* lean_string_utf8_next_fast(lean_object*, lean_object*); +lean_object* lean_nat_sub(lean_object*, lean_object*); +uint8_t lean_nat_dec_lt(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_String_Slice_0__String_Slice_dropWhile_go___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_isAllDigits_spec__0(lean_object*, lean_object*); +uint8_t lean_nat_dec_eq(lean_object*, lean_object*); +uint32_t lean_string_utf8_get_fast(lean_object*, lean_object*); +uint8_t lean_uint32_dec_le(uint32_t, uint32_t); +LEAN_EXPORT lean_object* l___private_Init_Data_String_Slice_0__String_Slice_dropWhile_go___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_isAllDigits_spec__0___boxed(lean_object*, lean_object*); +LEAN_EXPORT uint8_t l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_isAllDigits(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_isAllDigits___boxed(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_nameToNameParts_go(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_nameToNameParts_go___boxed(lean_object*, lean_object*); +lean_object* lean_array_mk(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_nameToNameParts(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_nameToNameParts___boxed(lean_object*); +size_t lean_usize_add(size_t, size_t); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_foldlMUnsafe_fold___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_namePartsToName_spec__0(lean_object*, size_t, size_t, lean_object*); +uint8_t lean_usize_dec_eq(size_t, size_t); +lean_object* lean_array_uget_borrowed(lean_object*, size_t); +lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); +lean_object* l_Lean_Name_num___override(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_foldlMUnsafe_fold___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_namePartsToName_spec__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_array_get_size(lean_object*); +size_t lean_usize_of_nat(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_namePartsToName(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_namePartsToName___boxed(lean_object*); +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_formatNameParts___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 1, .m_capacity = 1, .m_length = 0, .m_data = ""}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_formatNameParts___closed__0 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_formatNameParts___closed__0_value; +lean_object* l_Lean_Name_toString(lean_object*, uint8_t); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_formatNameParts(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_formatNameParts___boxed(lean_object*); +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 3, .m_capacity = 3, .m_length = 1, .m_data = "λ"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__0 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__0_value; +static const lean_ctor_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__0_value)}}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__1 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__1_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 7, .m_capacity = 7, .m_length = 6, .m_data = "_elam_"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__2 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__2_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 6, .m_capacity = 6, .m_length = 5, .m_data = "_elam"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__3 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__3_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 4, .m_capacity = 4, .m_length = 3, .m_data = "_jp"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__4 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__4_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__5_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "_closed"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__5 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__5_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 6, .m_capacity = 6, .m_length = 5, .m_data = "_lam_"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__6 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__6_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__7_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 7, .m_capacity = 7, .m_length = 6, .m_data = "closed"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__7 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__7_value; +static const lean_ctor_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__8_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__7_value)}}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__8 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__8_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__9_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 3, .m_capacity = 3, .m_length = 2, .m_data = "jp"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__9 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__9_value; +static const lean_ctor_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__10_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__9_value)}}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__10 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__10_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__11_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "_redArg"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__11 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__11_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__12_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 7, .m_capacity = 7, .m_length = 6, .m_data = "_boxed"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__12 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__12_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__13_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 6, .m_capacity = 6, .m_length = 5, .m_data = "_impl"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__13 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__13_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__14_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 5, .m_capacity = 5, .m_length = 4, .m_data = "_lam"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__14 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__14_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__15_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "_lambda"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__15 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__15_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__16_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 5, .m_capacity = 5, .m_length = 4, .m_data = "impl"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__16 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__16_value; +static const lean_ctor_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__17_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__16_value)}}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__17 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__17_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__18_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 6, .m_capacity = 6, .m_length = 5, .m_data = "boxed"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__18 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__18_value; +static const lean_ctor_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__19_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__18_value)}}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__19 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__19_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__20_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 9, .m_capacity = 9, .m_length = 6, .m_data = "arity↓"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__20 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__20_value; +static const lean_ctor_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__21_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__20_value)}}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__21 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix___closed__21_value; +uint8_t lean_string_dec_eq(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_matchSuffix(lean_object*); +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_isSpecIndex___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 6, .m_capacity = 6, .m_length = 5, .m_data = "spec_"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_isSpecIndex___closed__0 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_isSpecIndex___closed__0_value; +LEAN_EXPORT uint8_t l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_isSpecIndex(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_isSpecIndex___boxed(lean_object*); +uint8_t l_Lean_instBEqNamePart_beq(lean_object*, lean_object*); +LEAN_EXPORT uint8_t l_Option_instBEq_beq___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate_spec__0(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Option_instBEq_beq___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate_spec__0___boxed(lean_object*, lean_object*); +static const lean_ctor_object l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate_spec__1___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 0}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}}; +static const lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate_spec__1___redArg___closed__0 = (const lean_object*)&l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate_spec__1___redArg___closed__0_value; +static const lean_ctor_object l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate_spec__1___redArg___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1))}}; +static const lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate_spec__1___redArg___closed__1 = (const lean_object*)&l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate_spec__1___redArg___closed__1_value; +static const lean_ctor_object l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate_spec__1___redArg___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate_spec__1___redArg___closed__1_value)}}; +static const lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate_spec__1___redArg___closed__2 = (const lean_object*)&l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate_spec__1___redArg___closed__2_value; +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate_spec__1___redArg(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_array_fget_borrowed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate_spec__1___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 9, .m_capacity = 9, .m_length = 8, .m_data = "_private"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate___closed__0 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate___closed__0_value; +static const lean_ctor_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 0}, .m_objs = {((lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate___closed__0_value)}}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate___closed__1 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate___closed__1_value; +static const lean_ctor_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate___closed__1_value)}}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate___closed__2 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate___closed__2_value; +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate_spec__1(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripPrivate_spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext_spec__2___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext_spec__2___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT uint8_t l___private_Init_Data_Array_Basic_0__Array_anyMUnsafe_any___at___00Array_contains___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext_spec__0_spec__0(lean_object*, lean_object*, size_t, size_t); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_anyMUnsafe_any___at___00Array_contains___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext_spec__0_spec__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT uint8_t l_Array_contains___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext_spec__0(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_contains___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext_spec__0___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext_spec__1___redArg(lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_instInhabitedNamePart_default; +lean_object* lean_array_get_borrowed(lean_object*, lean_object*, lean_object*); +lean_object* lean_array_push(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext_spec__1___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_mk_empty_array_with_capacity(lean_object*); +static const lean_array_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*0, .m_other = 0, .m_tag = 246}, .m_size = 0, .m_capacity = 0, .m_data = {}}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext___closed__0 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext___closed__0_value; +static lean_once_cell_t l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext___closed__1_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext___closed__1; +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext___boxed(lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext_spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext_spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext_spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext_spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static const lean_string_object l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 5, .m_capacity = 5, .m_length = 4, .m_data = "_at_"}; +static const lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__0 = (const lean_object*)&l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__0_value; +static const lean_ctor_object l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 0}, .m_objs = {((lean_object*)&l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__0_value)}}; +static const lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__1 = (const lean_object*)&l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__1_value; +static const lean_string_object l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 6, .m_capacity = 6, .m_length = 5, .m_data = "_spec"}; +static const lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__2 = (const lean_object*)&l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__2_value; +static const lean_ctor_object l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 0}, .m_objs = {((lean_object*)&l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__2_value)}}; +static const lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__3 = (const lean_object*)&l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__3_value; +static lean_once_cell_t l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__4_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__4; +static const lean_ctor_object l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__5_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_processSpecContext___closed__0_value)}}; +static const lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__5 = (const lean_object*)&l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___closed__5_value; +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__5(lean_object*, lean_object*); +lean_object* lean_array_pop(lean_object*); +LEAN_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__5___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__4(lean_object*, lean_object*, size_t, size_t, lean_object*); +uint8_t lean_usize_dec_lt(size_t, size_t); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static const lean_string_object l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__1___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 3, .m_capacity = 3, .m_length = 2, .m_data = "_@"}; +static const lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__1___redArg___closed__0 = (const lean_object*)&l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__1___redArg___closed__0_value; +static lean_once_cell_t l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__1___redArg___closed__1_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__1___redArg___closed__1; +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__1___redArg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_extract___redArg(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__1___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__2___redArg(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__2___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +static const lean_string_object l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__0___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 10, .m_capacity = 10, .m_length = 9, .m_data = " spec at "}; +static const lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__0___closed__0 = (const lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__0___closed__0_value; +static const lean_string_object l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__0___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 2, .m_capacity = 2, .m_length = 1, .m_data = "["}; +static const lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__0___closed__1 = (const lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__0___closed__1_value; +static const lean_string_object l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__0___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 3, .m_capacity = 3, .m_length = 2, .m_data = ", "}; +static const lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__0___closed__2 = (const lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__0___closed__2_value; +static const lean_string_object l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__0___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 2, .m_capacity = 2, .m_length = 1, .m_data = "]"}; +static const lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__0___closed__3 = (const lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__0___closed__3_value; +static const lean_string_object l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__0___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 2, .m_capacity = 2, .m_length = 1, .m_data = "\?"}; +static const lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__0___closed__4 = (const lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__0___closed__4_value; +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__0(lean_object*, lean_object*, size_t, size_t, lean_object*); +lean_object* lean_string_append(lean_object*, lean_object*); +lean_object* lean_array_to_list(lean_object*); +lean_object* l_String_intercalate(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 3, .m_capacity = 3, .m_length = 2, .m_data = " ["}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts___closed__0 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts___closed__0_value; +static const lean_array_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*0, .m_other = 0, .m_tag = 246}, .m_size = 0, .m_capacity = 0, .m_data = {}}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts___closed__1 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts___closed__1_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "private"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts___closed__2 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts___closed__2_value; +size_t lean_array_size(lean_object*); +lean_object* l_Array_append___redArg(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts___boxed(lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Range_Basic_0__Std_Legacy_Range_forIn_x27_loop___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_postprocessNameParts_spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Name_demangle(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleBody(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleBody___boxed(lean_object*); +static const lean_ctor_object l_WellFounded_opaqueFix_u2083___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleWithPkg_spec__0___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 0}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}}; +static const lean_object* l_WellFounded_opaqueFix_u2083___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleWithPkg_spec__0___redArg___closed__0 = (const lean_object*)&l_WellFounded_opaqueFix_u2083___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleWithPkg_spec__0___redArg___closed__0_value; +lean_object* l_Lean_Name_demangle_x3f(lean_object*); +LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleWithPkg_spec__0___redArg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_string_utf8_extract(lean_object*, lean_object*, lean_object*); +uint8_t lean_uint32_dec_eq(uint32_t, uint32_t); +LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleWithPkg_spec__0___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleWithPkg(lean_object*); +LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleWithPkg_spec__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleWithPkg_spec__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix_spec__0___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t lean_string_get_byte_fast(lean_object*, lean_object*); +uint8_t lean_uint8_dec_eq(uint8_t, uint8_t); +lean_object* l_String_Slice_posGE___redArg(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix_spec__0___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 6, .m_capacity = 6, .m_length = 5, .m_data = ".cold"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix___closed__0 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix___closed__0_value; +static lean_once_cell_t l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix___closed__1_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix___closed__1; +static lean_once_cell_t l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix___closed__2_once = LEAN_ONCE_CELL_INITIALIZER; +static uint8_t l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix___closed__2; +static lean_once_cell_t l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix___closed__3_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix___closed__3; +lean_object* l_String_Slice_Pattern_ForwardSliceSearcher_buildTable(lean_object*); +static lean_once_cell_t l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix___closed__4_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix___closed__4; +static lean_once_cell_t l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix___closed__5_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix___closed__5; +static const lean_ctor_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 0}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1))}}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix___closed__6 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix___closed__6_value; +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix(lean_object*); +LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix_spec__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00__private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_stripColdSuffix_spec__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 4, .m_capacity = 4, .m_length = 3, .m_data = "lp_"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__0 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__0_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 3, .m_capacity = 3, .m_length = 2, .m_data = " ("}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__1 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__1_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 2, .m_capacity = 2, .m_length = 1, .m_data = ")"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__2 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__2_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 3, .m_capacity = 3, .m_length = 2, .m_data = "l_"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__3 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__3_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "initialize_"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__4 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__4_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__5_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 15, .m_capacity = 15, .m_length = 14, .m_data = "[module_init] "}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__5 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__5_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 15, .m_capacity = 15, .m_length = 14, .m_data = "initialize_lp_"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__6 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__6_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__7_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 14, .m_capacity = 14, .m_length = 13, .m_data = "initialize_l_"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__7 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__7_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__8_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 10, .m_capacity = 10, .m_length = 9, .m_data = "_init_lp_"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__8 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__8_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__9_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "[init] "}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__9 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__9_value; +static const lean_string_object l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__10_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 9, .m_capacity = 9, .m_length = 8, .m_data = "_init_l_"}; +static const lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__10 = (const lean_object*)&l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore___closed__10_value; +LEAN_EXPORT lean_object* l___private_Lean_Compiler_NameDemangling_0__Lean_Name_Demangle_demangleCore(lean_object*); +static const lean_string_object l_Lean_Name_Demangle_demangleSymbol___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 11, .m_capacity = 11, .m_length = 10, .m_data = "_lean_main"}; +static const lean_object* l_Lean_Name_Demangle_demangleSymbol___closed__0 = (const lean_object*)&l_Lean_Name_Demangle_demangleSymbol___closed__0_value; +static const lean_string_object l_Lean_Name_Demangle_demangleSymbol___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 2, .m_capacity = 2, .m_length = 1, .m_data = " "}; +static const lean_object* l_Lean_Name_Demangle_demangleSymbol___closed__1 = (const lean_object*)&l_Lean_Name_Demangle_demangleSymbol___closed__1_value; +static const lean_string_object l_Lean_Name_Demangle_demangleSymbol___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 13, .m_capacity = 13, .m_length = 12, .m_data = "[lean] main "}; +static const lean_object* l_Lean_Name_Demangle_demangleSymbol___closed__2 = (const lean_object*)&l_Lean_Name_Demangle_demangleSymbol___closed__2_value; +static const lean_string_object l_Lean_Name_Demangle_demangleSymbol___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "[lean] main"}; +static const lean_object* l_Lean_Name_Demangle_demangleSymbol___closed__3 = (const lean_object*)&l_Lean_Name_Demangle_demangleSymbol___closed__3_value; +static const lean_ctor_object l_Lean_Name_Demangle_demangleSymbol___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Name_Demangle_demangleSymbol___closed__3_value)}}; +static const lean_object* l_Lean_Name_Demangle_demangleSymbol___closed__4 = (const lean_object*)&l_Lean_Name_Demangle_demangleSymbol___closed__4_value; +static const lean_string_object l_Lean_Name_Demangle_demangleSymbol___closed__5_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "lean_apply_"}; +static const lean_object* l_Lean_Name_Demangle_demangleSymbol___closed__5 = (const lean_object*)&l_Lean_Name_Demangle_demangleSymbol___closed__5_value; +static const lean_string_object l_Lean_Name_Demangle_demangleSymbol___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = " #if defined(__clang__) #pragma clang diagnostic ignored "-Wunused-parameter" @@ -13,54 +13,98 @@ #ifdef __cplusplus extern "C" { #endif -static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 10, .m_capacity = 10, .m_length = 9, .m_data = "Decidable"}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__0 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__0_value; -static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "isFalse"}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__1 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__1_value; +lean_object* l_Lean_Meta_Tactic_Cbv_getCbvEvalLemmas___redArg(lean_object*, lean_object*); +lean_object* lean_st_ref_get(lean_object*); +extern lean_object* l_Lean_noncomputableExt; +uint8_t l_Lean_isNoncomputable(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_isCbvNoncomputable___redArg(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_isCbvNoncomputable___redArg___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_isCbvNoncomputable(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_isCbvNoncomputable___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t lean_usize_dec_eq(size_t, size_t); +lean_object* lean_array_uget_borrowed(lean_object*, size_t); +size_t lean_usize_add(size_t, size_t); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_anyMUnsafe_any___at___00__private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance_spec__0___redArg(lean_object*, size_t, size_t, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_anyMUnsafe_any___at___00__private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance_spec__0___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 10, .m_capacity = 10, .m_length = 9, .m_data = "Decidable"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__0 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__0_value; +lean_object* l_Lean_Name_mkStr1(lean_object*); +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__0_value),LEAN_SCALAR_PTR_LITERAL(87, 187, 205, 215, 218, 218, 68, 60)}}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__1 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__1_value; +lean_object* l_Lean_mkConst(lean_object*, lean_object*); +static lean_once_cell_t l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__2_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__2; +lean_object* l_Lean_Expr_app___override(lean_object*, lean_object*); +lean_object* l_Lean_Meta_trySynthInstance(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Sym_shareCommon___redArg(lean_object*, lean_object*); +lean_object* l_Lean_Expr_getUsedConstants(lean_object*); +lean_object* lean_array_get_size(lean_object*); +uint8_t lean_nat_dec_lt(lean_object*, lean_object*); +size_t lean_usize_of_nat(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_anyMUnsafe_any___at___00__private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance_spec__0(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_anyMUnsafe_any___at___00__private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance_spec__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "isFalse"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__0 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__0_value; lean_object* l_Lean_Name_mkStr2(lean_object*, lean_object*); -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__2_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__0_value),LEAN_SCALAR_PTR_LITERAL(87, 187, 205, 215, 218, 218, 68, 60)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__2_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__1_value),LEAN_SCALAR_PTR_LITERAL(21, 55, 194, 143, 15, 194, 124, 204)}}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__2 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__2_value; -static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 7, .m_capacity = 7, .m_length = 6, .m_data = "isTrue"}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__3 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__3_value; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__4_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__0_value),LEAN_SCALAR_PTR_LITERAL(87, 187, 205, 215, 218, 218, 68, 60)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__4_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__3_value),LEAN_SCALAR_PTR_LITERAL(9, 43, 53, 182, 5, 16, 39, 1)}}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__4 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__4_value; -static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 5, .m_capacity = 5, .m_length = 4, .m_data = "Lean"}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value; -static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 4, .m_capacity = 4, .m_length = 3, .m_data = "Sym"}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value; -static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__7_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 9, .m_capacity = 9, .m_length = 8, .m_data = "ite_true"}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__7 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__7_value; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__1_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__0_value),LEAN_SCALAR_PTR_LITERAL(87, 187, 205, 215, 218, 218, 68, 60)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__1_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__0_value),LEAN_SCALAR_PTR_LITERAL(21, 55, 194, 143, 15, 194, 124, 204)}}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__1 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__1_value; +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 7, .m_capacity = 7, .m_length = 6, .m_data = "isTrue"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__2 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__2_value; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__3_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__0_value),LEAN_SCALAR_PTR_LITERAL(87, 187, 205, 215, 218, 218, 68, 60)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__3_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__2_value),LEAN_SCALAR_PTR_LITERAL(9, 43, 53, 182, 5, 16, 39, 1)}}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__3 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__3_value; +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 5, .m_capacity = 5, .m_length = 4, .m_data = "Lean"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value; +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 4, .m_capacity = 4, .m_length = 3, .m_data = "Sym"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value; +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 9, .m_capacity = 9, .m_length = 8, .m_data = "ite_true"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__6 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__6_value; lean_object* l_Lean_Name_mkStr3(lean_object*, lean_object*, lean_object*); -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__8_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__8_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__8_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__8_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__8_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__7_value),LEAN_SCALAR_PTR_LITERAL(168, 126, 169, 138, 86, 190, 160, 178)}}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__8 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__8_value; -static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__9_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 10, .m_capacity = 10, .m_length = 9, .m_data = "ite_false"}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__9 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__9_value; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__10_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__10_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__10_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__10_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__10_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__9_value),LEAN_SCALAR_PTR_LITERAL(101, 74, 75, 252, 5, 15, 175, 246)}}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__10 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__10_value; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__7_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__7_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__7_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__7_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__7_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(168, 126, 169, 138, 86, 190, 160, 178)}}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__7 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__7_value; +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__8_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 10, .m_capacity = 10, .m_length = 9, .m_data = "ite_false"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__8 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__8_value; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__9_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__9_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__9_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__9_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__9_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__8_value),LEAN_SCALAR_PTR_LITERAL(101, 74, 75, 252, 5, 15, 175, 246)}}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__9 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__9_value; lean_object* l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(lean_object*, lean_object*); lean_object* l_Lean_Expr_cleanupAnnotations(lean_object*); uint8_t l_Lean_Expr_isApp(lean_object*); lean_object* l_Lean_Expr_appFnCleanup___redArg(lean_object*); uint8_t l_Lean_Expr_isConstOf(lean_object*, lean_object*); lean_object* l_Lean_Expr_constLevels_x21(lean_object*); -lean_object* l_Lean_mkConst(lean_object*, lean_object*); lean_object* l_Lean_mkApp6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___boxed(lean_object**); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___boxed(lean_object**); +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 15, .m_capacity = 15, .m_length = 14, .m_data = "ite_true_congr"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__0 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__0_value; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__1_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__1_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__1_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__1_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__0_value),LEAN_SCALAR_PTR_LITERAL(10, 140, 45, 159, 71, 73, 13, 89)}}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__1 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__1_value; +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 16, .m_capacity = 16, .m_length = 15, .m_data = "ite_false_congr"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__2 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__2_value; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__3_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__3_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__3_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__3_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__2_value),LEAN_SCALAR_PTR_LITERAL(132, 158, 180, 207, 199, 71, 79, 30)}}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__3 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__3_value; +lean_object* l_Lean_mkApp8(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___boxed(lean_object**); lean_object* lean_sym_simp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidableWithFallback(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidableWithFallback___boxed(lean_object**); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchIteDecidable(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchIteDecidable___boxed(lean_object**); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchIteDecidableCongr(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchIteDecidableCongr___boxed(lean_object**); LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpIteCbv___lam__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpIteCbv___lam__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Expr_app___override(lean_object*, lean_object*); lean_object* l_Lean_Meta_Sym_Internal_Sym_share1___redArg(lean_object*, lean_object*); -lean_object* lean_st_ref_get(lean_object*); lean_object* l_Lean_Meta_Sym_Internal_Sym_assertShared(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Internal_mkAppS___at___00Lean_Meta_Sym_Internal_mkAppS_u2084___at___00Lean_Meta_Sym_Simp_simpIteCbv_spec__0_spec__1___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Internal_mkAppS___at___00Lean_Meta_Sym_Internal_mkAppS_u2084___at___00Lean_Meta_Sym_Simp_simpIteCbv_spec__0_spec__1___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -72,8 +116,8 @@ LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Internal_mkAppS_u2084___at___00Lean_Met LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Internal_mkAppS_u2084___at___00Lean_Meta_Sym_Simp_simpIteCbv_spec__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static const lean_string_object l_Lean_Meta_Sym_Simp_simpIteCbv___lam__1___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 15, .m_capacity = 15, .m_length = 14, .m_data = "ite_cond_congr"}; static const lean_object* l_Lean_Meta_Sym_Simp_simpIteCbv___lam__1___closed__0 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpIteCbv___lam__1___closed__0_value; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpIteCbv___lam__1___closed__1_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpIteCbv___lam__1___closed__1_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpIteCbv___lam__1___closed__1_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpIteCbv___lam__1___closed__1_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpIteCbv___lam__1___closed__1_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpIteCbv___lam__1___closed__1_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpIteCbv___lam__1___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpIteCbv___lam__1___closed__1_value_aux_1),((lean_object*)&l_Lean_Meta_Sym_Simp_simpIteCbv___lam__1___closed__0_value),LEAN_SCALAR_PTR_LITERAL(149, 115, 5, 135, 85, 70, 205, 95)}}; static const lean_object* l_Lean_Meta_Sym_Simp_simpIteCbv___lam__1___closed__1 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpIteCbv___lam__1___closed__1_value; lean_object* l_Lean_Expr_replaceFn(lean_object*, lean_object*); @@ -82,12 +126,11 @@ LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpIteCbv___lam__1(lean_object*, LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpIteCbv___lam__1___boxed(lean_object**); static const lean_string_object l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 4, .m_capacity = 4, .m_length = 3, .m_data = "ite"}; static const lean_object* l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__0 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__0_value; -lean_object* l_Lean_Name_mkStr1(lean_object*); static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__0_value),LEAN_SCALAR_PTR_LITERAL(15, 2, 151, 246, 61, 29, 192, 254)}}; static const lean_object* l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__1 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__1_value; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__9_value),LEAN_SCALAR_PTR_LITERAL(217, 231, 214, 152, 207, 100, 121, 38)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__8_value),LEAN_SCALAR_PTR_LITERAL(217, 231, 214, 152, 207, 100, 121, 38)}}; static const lean_object* l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__2 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__2_value; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__7_value),LEAN_SCALAR_PTR_LITERAL(28, 219, 17, 217, 43, 100, 109, 98)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(28, 219, 17, 217, 43, 100, 109, 98)}}; static const lean_object* l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__3 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__3_value; static const lean_string_object l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 29, .m_capacity = 29, .m_length = 28, .m_data = "decidable_of_decidable_of_eq"}; static const lean_object* l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__4 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__4_value; @@ -110,59 +153,77 @@ lean_object* l_Lean_Expr_getBoundedAppFn(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_getAppNumArgs(lean_object*); -uint8_t lean_nat_dec_lt(lean_object*, lean_object*); lean_object* lean_nat_sub(lean_object*, lean_object*); lean_object* l_Lean_Meta_Sym_Simp_propagateOverApplied(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpIteCbv(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpIteCbv___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Internal_mkAppS___at___00Lean_Meta_Sym_Internal_mkAppS_u2084___at___00Lean_Meta_Sym_Simp_simpIteCbv_spec__0_spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Internal_mkAppS___at___00Lean_Meta_Sym_Internal_mkAppS_u2084___at___00Lean_Meta_Sym_Simp_simpIteCbv_spec__0_spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 10, .m_capacity = 10, .m_length = 9, .m_data = "dite_true"}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__0 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__0_value; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__1_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__1_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__1_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__1_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__0_value),LEAN_SCALAR_PTR_LITERAL(205, 79, 213, 134, 118, 203, 8, 228)}}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__1 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__1_value; -static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 11, .m_capacity = 11, .m_length = 10, .m_data = "dite_false"}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__2 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__2_value; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__3_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__3_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__3_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__3_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__2_value),LEAN_SCALAR_PTR_LITERAL(26, 82, 15, 17, 1, 91, 226, 1)}}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__3 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__3_value; +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 10, .m_capacity = 10, .m_length = 9, .m_data = "dite_true"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__0 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__0_value; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__1_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__1_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__1_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__1_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__0_value),LEAN_SCALAR_PTR_LITERAL(205, 79, 213, 134, 118, 203, 8, 228)}}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__1 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__1_value; +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 11, .m_capacity = 11, .m_length = 10, .m_data = "dite_false"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__2 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__2_value; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__3_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__3_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__3_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__3_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__2_value),LEAN_SCALAR_PTR_LITERAL(26, 82, 15, 17, 1, 91, 226, 1)}}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__3 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__3_value; lean_object* lean_mk_empty_array_with_capacity(lean_object*); lean_object* lean_array_push(lean_object*, lean_object*); lean_object* l_Lean_Expr_betaRev(lean_object*, lean_object*, uint8_t, uint8_t); lean_object* l_Lean_Meta_Sym_shareCommonInc___redArg(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___boxed(lean_object**); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidableWithFallback(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidableWithFallback___boxed(lean_object**); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___boxed(lean_object**); +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 3, .m_capacity = 3, .m_length = 2, .m_data = "Eq"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__0 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__0_value; +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 9, .m_capacity = 9, .m_length = 8, .m_data = "mpr_prop"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__1 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__1_value; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__2_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__0_value),LEAN_SCALAR_PTR_LITERAL(143, 37, 101, 248, 9, 246, 191, 223)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__2_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__1_value),LEAN_SCALAR_PTR_LITERAL(169, 177, 76, 157, 211, 15, 217, 219)}}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__2 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__2_value; +static lean_once_cell_t l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__3_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__3; +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 16, .m_capacity = 16, .m_length = 15, .m_data = "dite_true_congr"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__4 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__4_value; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__5_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__5_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__5_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__5_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__5_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__4_value),LEAN_SCALAR_PTR_LITERAL(120, 185, 89, 138, 56, 95, 240, 189)}}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__5 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__5_value; +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "mpr_not"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__6 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__6_value; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__7_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__0_value),LEAN_SCALAR_PTR_LITERAL(143, 37, 101, 248, 9, 246, 191, 223)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__7_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__7_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__6_value),LEAN_SCALAR_PTR_LITERAL(121, 56, 250, 51, 9, 123, 141, 181)}}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__7 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__7_value; +static lean_once_cell_t l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__8_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__8; +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__9_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 17, .m_capacity = 17, .m_length = 16, .m_data = "dite_false_congr"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__9 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__9_value; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__10_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__10_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__10_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__10_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__10_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__9_value),LEAN_SCALAR_PTR_LITERAL(200, 44, 51, 241, 184, 46, 57, 25)}}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__10 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__10_value; +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___boxed(lean_object**); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDIteDecidable(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDIteDecidable___boxed(lean_object**); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDIteDecidableCongr(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDIteDecidableCongr___boxed(lean_object**); static const lean_string_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 2, .m_capacity = 2, .m_length = 1, .m_data = "h"}; static const lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__0 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__0_value; static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__0_value),LEAN_SCALAR_PTR_LITERAL(176, 181, 207, 77, 197, 87, 68, 121)}}; static const lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__1 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__1_value; -static const lean_string_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 3, .m_capacity = 3, .m_length = 2, .m_data = "Eq"}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__2 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__2_value; -static const lean_string_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 9, .m_capacity = 9, .m_length = 8, .m_data = "mpr_prop"}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__3 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__3_value; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__4_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__2_value),LEAN_SCALAR_PTR_LITERAL(143, 37, 101, 248, 9, 246, 191, 223)}}; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__4_value_aux_0),((lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__3_value),LEAN_SCALAR_PTR_LITERAL(169, 177, 76, 157, 211, 15, 217, 219)}}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__4 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__4_value; lean_object* l_Lean_mkBVar(lean_object*); -static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__5_once = LEAN_ONCE_CELL_INITIALIZER; -static lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__5; -static const lean_string_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "mpr_not"}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__6 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__6_value; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__7_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__2_value),LEAN_SCALAR_PTR_LITERAL(143, 37, 101, 248, 9, 246, 191, 223)}}; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__7_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__7_value_aux_0),((lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__6_value),LEAN_SCALAR_PTR_LITERAL(121, 56, 250, 51, 9, 123, 141, 181)}}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__7 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__7_value; -static const lean_string_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__8_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 16, .m_capacity = 16, .m_length = 15, .m_data = "dite_cond_congr"}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__8 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__8_value; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__9_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__9_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__9_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__9_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__9_value_aux_1),((lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__8_value),LEAN_SCALAR_PTR_LITERAL(72, 238, 116, 219, 106, 19, 52, 46)}}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__9 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__9_value; -lean_object* l_Lean_Meta_Sym_shareCommon___redArg(lean_object*, lean_object*); +static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__2_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__2; +static const lean_string_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 16, .m_capacity = 16, .m_length = 15, .m_data = "dite_cond_congr"}; +static const lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__3 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__3_value; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__4_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__4_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__4_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__4_value_aux_1),((lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__3_value),LEAN_SCALAR_PTR_LITERAL(72, 238, 116, 219, 106, 19, 52, 46)}}; +static const lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__4 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__4_value; lean_object* l_Lean_mkLambda(lean_object*, uint8_t, lean_object*, lean_object*); lean_object* l_Lean_mkNot(lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -179,7 +240,7 @@ static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__4_on static lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__4; static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__5_once = LEAN_ONCE_CELL_INITIALIZER; static lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__5; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__2_value),LEAN_SCALAR_PTR_LITERAL(78, 119, 178, 178, 249, 126, 188, 7)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__2_value),LEAN_SCALAR_PTR_LITERAL(78, 119, 178, 178, 249, 126, 188, 7)}}; static const lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__6 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__6_value; static const lean_string_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__7_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 5, .m_capacity = 5, .m_length = 4, .m_data = "True"}; static const lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__7 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__7_value; @@ -192,7 +253,7 @@ static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__10_o static lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__10; static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__11_once = LEAN_ONCE_CELL_INITIALIZER; static lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__11; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__12_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__0_value),LEAN_SCALAR_PTR_LITERAL(65, 218, 189, 96, 14, 237, 238, 210)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__12_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__0_value),LEAN_SCALAR_PTR_LITERAL(65, 218, 189, 96, 14, 237, 238, 210)}}; static const lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__12 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__12_value; static const lean_string_object l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__13_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 19, .m_capacity = 19, .m_length = 18, .m_data = "dite_cond_eq_false"}; static const lean_object* l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__13 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__13_value; @@ -228,14 +289,14 @@ static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpOr___closed__8_once = LEAN_ONCE static lean_object* l_Lean_Meta_Sym_Simp_simpOr___closed__8; static const lean_string_object l_Lean_Meta_Sym_Simp_simpOr___closed__9_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "or_eq_right"}; static const lean_object* l_Lean_Meta_Sym_Simp_simpOr___closed__9 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpOr___closed__9_value; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpOr___closed__10_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpOr___closed__10_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpOr___closed__10_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpOr___closed__10_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpOr___closed__10_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpOr___closed__10_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpOr___closed__10_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpOr___closed__10_value_aux_1),((lean_object*)&l_Lean_Meta_Sym_Simp_simpOr___closed__9_value),LEAN_SCALAR_PTR_LITERAL(21, 118, 104, 24, 237, 104, 148, 184)}}; static const lean_object* l_Lean_Meta_Sym_Simp_simpOr___closed__10 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpOr___closed__10_value; static const lean_string_object l_Lean_Meta_Sym_Simp_simpOr___closed__11_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 16, .m_capacity = 16, .m_length = 15, .m_data = "or_eq_true_left"}; static const lean_object* l_Lean_Meta_Sym_Simp_simpOr___closed__11 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpOr___closed__11_value; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpOr___closed__12_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpOr___closed__12_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpOr___closed__12_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpOr___closed__12_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpOr___closed__12_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpOr___closed__12_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpOr___closed__12_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpOr___closed__12_value_aux_1),((lean_object*)&l_Lean_Meta_Sym_Simp_simpOr___closed__11_value),LEAN_SCALAR_PTR_LITERAL(118, 241, 106, 175, 50, 115, 8, 14)}}; static const lean_object* l_Lean_Meta_Sym_Simp_simpOr___closed__12 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpOr___closed__12_value; lean_object* l_Lean_Meta_Sym_getTrueExpr___redArg(lean_object*); @@ -259,112 +320,103 @@ static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpAnd___closed__7_once = LEAN_ONC static lean_object* l_Lean_Meta_Sym_Simp_simpAnd___closed__7; static const lean_string_object l_Lean_Meta_Sym_Simp_simpAnd___closed__8_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "and_eq_left"}; static const lean_object* l_Lean_Meta_Sym_Simp_simpAnd___closed__8 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpAnd___closed__8_value; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpAnd___closed__9_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpAnd___closed__9_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpAnd___closed__9_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpAnd___closed__9_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpAnd___closed__9_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpAnd___closed__9_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpAnd___closed__9_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpAnd___closed__9_value_aux_1),((lean_object*)&l_Lean_Meta_Sym_Simp_simpAnd___closed__8_value),LEAN_SCALAR_PTR_LITERAL(72, 125, 103, 100, 218, 116, 109, 9)}}; static const lean_object* l_Lean_Meta_Sym_Simp_simpAnd___closed__9 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpAnd___closed__9_value; static const lean_string_object l_Lean_Meta_Sym_Simp_simpAnd___closed__10_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 18, .m_capacity = 18, .m_length = 17, .m_data = "and_eq_false_left"}; static const lean_object* l_Lean_Meta_Sym_Simp_simpAnd___closed__10 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpAnd___closed__10_value; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpAnd___closed__11_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpAnd___closed__11_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpAnd___closed__11_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpAnd___closed__11_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpAnd___closed__11_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpAnd___closed__11_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpAnd___closed__11_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpAnd___closed__11_value_aux_1),((lean_object*)&l_Lean_Meta_Sym_Simp_simpAnd___closed__10_value),LEAN_SCALAR_PTR_LITERAL(74, 26, 114, 238, 153, 222, 111, 145)}}; static const lean_object* l_Lean_Meta_Sym_Simp_simpAnd___closed__11 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpAnd___closed__11_value; lean_object* l_Lean_Meta_Sym_getFalseExpr___redArg(lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpAnd(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpAnd___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*0 + 8, .m_other = 0, .m_tag = 0}, .m_objs = {LEAN_SCALAR_PTR_LITERAL(1, 0, 0, 0, 0, 0, 0, 0)}}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__0 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__0_value; -static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 14, .m_capacity = 14, .m_length = 13, .m_data = "decide_isTrue"}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__1 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__1_value; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__2_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__2_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__2_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__2_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(128, 238, 232, 136, 147, 64, 116, 79)}}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__2 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__2_value; -static lean_once_cell_t l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__3_once = LEAN_ONCE_CELL_INITIALIZER; -static lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__3; -static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 15, .m_capacity = 15, .m_length = 14, .m_data = "decide_isFalse"}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__4 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__4_value; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__5_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__5_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__5_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__5_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__5_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__4_value),LEAN_SCALAR_PTR_LITERAL(30, 93, 112, 198, 213, 0, 204, 135)}}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__5 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__5_value; -static lean_once_cell_t l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__6_once = LEAN_ONCE_CELL_INITIALIZER; -static lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__6; +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 14, .m_capacity = 14, .m_length = 13, .m_data = "decide_isTrue"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__0 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__0_value; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__1_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__1_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__1_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__1_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__0_value),LEAN_SCALAR_PTR_LITERAL(128, 238, 232, 136, 147, 64, 116, 79)}}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__1 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__1_value; +static lean_once_cell_t l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__2_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__2; +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 15, .m_capacity = 15, .m_length = 14, .m_data = "decide_isFalse"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__3 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__3_value; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__4_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__4_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__4_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__4_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__3_value),LEAN_SCALAR_PTR_LITERAL(30, 93, 112, 198, 213, 0, 204, 135)}}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__4 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__4_value; +static lean_once_cell_t l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__5_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__5; lean_object* l_Lean_Meta_Sym_getBoolTrueExpr___redArg(lean_object*); lean_object* l_Lean_Meta_Sym_getBoolFalseExpr___redArg(lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 20, .m_capacity = 20, .m_length = 19, .m_data = "decide_isTrue_congr"}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__0 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__0_value; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__1_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__1_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__1_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__1_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__0_value),LEAN_SCALAR_PTR_LITERAL(164, 46, 253, 225, 97, 126, 88, 158)}}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__1 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__1_value; -static lean_once_cell_t l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__2_once = LEAN_ONCE_CELL_INITIALIZER; -static lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__2; -static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 21, .m_capacity = 21, .m_length = 20, .m_data = "decide_isFalse_congr"}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__3 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__3_value; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__4_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__4_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__4_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; -static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__4_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__3_value),LEAN_SCALAR_PTR_LITERAL(210, 108, 78, 146, 25, 88, 128, 244)}}; -static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__4 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__4_value; -static lean_once_cell_t l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__5_once = LEAN_ONCE_CELL_INITIALIZER; -static lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__5; +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 20, .m_capacity = 20, .m_length = 19, .m_data = "decide_isTrue_congr"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__0 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__0_value; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__1_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__1_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__1_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__1_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__0_value),LEAN_SCALAR_PTR_LITERAL(164, 46, 253, 225, 97, 126, 88, 158)}}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__1 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__1_value; +static lean_once_cell_t l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__2_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__2; +static const lean_string_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 21, .m_capacity = 21, .m_length = 20, .m_data = "decide_isFalse_congr"}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__3 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__3_value; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__4_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__4_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__4_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__4_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__3_value),LEAN_SCALAR_PTR_LITERAL(210, 108, 78, 146, 25, 88, 128, 244)}}; +static const lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__4 = (const lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__4_value; +static lean_once_cell_t l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__5_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__5; lean_object* l_Lean_mkApp5(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstWithFallback(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstWithFallback___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstWithFallbackCongr(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstWithFallbackCongr___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static const lean_string_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 11, .m_capacity = 11, .m_length = 10, .m_data = "congr_simp"}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__0 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__0_value; -LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___boxed(lean_object**); -static const lean_string_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 7, .m_capacity = 7, .m_length = 6, .m_data = "decide"}; +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDecideDecidable(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDecideDecidable___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDecideDecidableCongr(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDecideDecidableCongr___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static const lean_string_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 11, .m_capacity = 11, .m_length = 10, .m_data = "congr_simp"}; static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__0 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__0_value; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__1_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__0_value),LEAN_SCALAR_PTR_LITERAL(87, 187, 205, 215, 218, 218, 68, 60)}}; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__1_value_aux_0),((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__0_value),LEAN_SCALAR_PTR_LITERAL(16, 96, 65, 173, 152, 155, 4, 222)}}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__1 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__1_value; -static const lean_string_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 13, .m_capacity = 13, .m_length = 12, .m_data = "decide_false"}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__2 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__2_value; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__2_value),LEAN_SCALAR_PTR_LITERAL(71, 46, 65, 221, 159, 136, 150, 89)}}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__3 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__3_value; -static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__4_once = LEAN_ONCE_CELL_INITIALIZER; -static lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__4; -static const lean_string_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__5_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "decide_true"}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__5 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__5_value; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__5_value),LEAN_SCALAR_PTR_LITERAL(205, 8, 17, 237, 36, 213, 18, 105)}}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__6 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__6_value; -static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__7_once = LEAN_ONCE_CELL_INITIALIZER; -static lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__7; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__8_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__0_value),LEAN_SCALAR_PTR_LITERAL(87, 187, 205, 215, 218, 218, 68, 60)}}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__8 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__8_value; -static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__9_once = LEAN_ONCE_CELL_INITIALIZER; -static lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__9; -static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__10_once = LEAN_ONCE_CELL_INITIALIZER; -static lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__10; -static const lean_string_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__11_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 21, .m_capacity = 21, .m_length = 20, .m_data = "decide_prop_eq_false"}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__11 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__11_value; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__12_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__12_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__12_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__12_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__12_value_aux_1),((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__11_value),LEAN_SCALAR_PTR_LITERAL(55, 242, 168, 209, 35, 165, 174, 215)}}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__12 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__12_value; -static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__13_once = LEAN_ONCE_CELL_INITIALIZER; -static lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__13; -static const lean_string_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__14_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 20, .m_capacity = 20, .m_length = 19, .m_data = "decide_prop_eq_true"}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__14 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__14_value; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__15_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__15_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__15_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__6_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; -static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__15_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__15_value_aux_1),((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__14_value),LEAN_SCALAR_PTR_LITERAL(91, 57, 77, 17, 146, 195, 162, 163)}}; -static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__15 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__15_value; -static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__16_once = LEAN_ONCE_CELL_INITIALIZER; -static lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__16; -lean_object* l_Lean_Meta_trySynthInstance(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___boxed(lean_object**); +static const lean_string_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 7, .m_capacity = 7, .m_length = 6, .m_data = "decide"}; +static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__0 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__0_value; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__1_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__0_value),LEAN_SCALAR_PTR_LITERAL(87, 187, 205, 215, 218, 218, 68, 60)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__1_value_aux_0),((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__0_value),LEAN_SCALAR_PTR_LITERAL(16, 96, 65, 173, 152, 155, 4, 222)}}; +static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__1 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__1_value; +static const lean_string_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 13, .m_capacity = 13, .m_length = 12, .m_data = "decide_false"}; +static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__2 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__2_value; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__2_value),LEAN_SCALAR_PTR_LITERAL(71, 46, 65, 221, 159, 136, 150, 89)}}; +static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__3 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__3_value; +static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__4_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__4; +static const lean_string_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__5_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "decide_true"}; +static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__5 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__5_value; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__5_value),LEAN_SCALAR_PTR_LITERAL(205, 8, 17, 237, 36, 213, 18, 105)}}; +static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__6 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__6_value; +static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__7_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__7; +static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__8_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__8; +static const lean_string_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__9_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 21, .m_capacity = 21, .m_length = 20, .m_data = "decide_prop_eq_false"}; +static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__9 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__9_value; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__10_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__10_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__10_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__10_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__10_value_aux_1),((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__9_value),LEAN_SCALAR_PTR_LITERAL(55, 242, 168, 209, 35, 165, 174, 215)}}; +static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__10 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__10_value; +static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__11_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__11; +static const lean_string_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__12_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 20, .m_capacity = 20, .m_length = 19, .m_data = "decide_prop_eq_true"}; +static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__12 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__12_value; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__13_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__4_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__13_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__13_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__5_value),LEAN_SCALAR_PTR_LITERAL(31, 147, 176, 82, 87, 65, 127, 52)}}; +static const lean_ctor_object l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__13_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__13_value_aux_1),((lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__12_value),LEAN_SCALAR_PTR_LITERAL(91, 57, 77, 17, 146, 195, 162, 163)}}; +static const lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__13 = (const lean_object*)&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__13_value; +static lean_once_cell_t l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__14_once = LEAN_ONCE_CELL_INITIALIZER; +static lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__14; +LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_get_reducibility_status(lean_object*, lean_object*); @@ -415,7 +467,7 @@ static const lean_ctor_object l_Lean_Meta_Tactic_Cbv_simpControlCbv___closed__1_ static const lean_object* l_Lean_Meta_Tactic_Cbv_simpControlCbv___closed__1 = (const lean_object*)&l_Lean_Meta_Tactic_Cbv_simpControlCbv___closed__1_value; static const lean_string_object l_Lean_Meta_Tactic_Cbv_simpControlCbv___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 4, .m_capacity = 4, .m_length = 3, .m_data = "rec"}; static const lean_object* l_Lean_Meta_Tactic_Cbv_simpControlCbv___closed__2 = (const lean_object*)&l_Lean_Meta_Tactic_Cbv_simpControlCbv___closed__2_value; -static const lean_ctor_object l_Lean_Meta_Tactic_Cbv_simpControlCbv___closed__3_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__0_value),LEAN_SCALAR_PTR_LITERAL(87, 187, 205, 215, 218, 218, 68, 60)}}; +static const lean_ctor_object l_Lean_Meta_Tactic_Cbv_simpControlCbv___closed__3_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__0_value),LEAN_SCALAR_PTR_LITERAL(87, 187, 205, 215, 218, 218, 68, 60)}}; static const lean_ctor_object l_Lean_Meta_Tactic_Cbv_simpControlCbv___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Tactic_Cbv_simpControlCbv___closed__3_value_aux_0),((lean_object*)&l_Lean_Meta_Tactic_Cbv_simpControlCbv___closed__2_value),LEAN_SCALAR_PTR_LITERAL(158, 146, 92, 125, 27, 135, 153, 152)}}; static const lean_object* l_Lean_Meta_Tactic_Cbv_simpControlCbv___closed__3 = (const lean_object*)&l_Lean_Meta_Tactic_Cbv_simpControlCbv___closed__3_value; uint8_t lean_name_eq(lean_object*, lean_object*); @@ -423,178 +475,558 @@ lean_object* l_Lean_Meta_Sym_Simp_simpInterlaced(lean_object*, lean_object*, lea lean_object* l_Lean_Meta_Sym_Simp_simpCond(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_Tactic_Cbv_simpControlCbv(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_Tactic_Cbv_simpControlCbv___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_isCbvNoncomputable___redArg(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_18; -lean_inc_ref(x_4); -x_18 = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(x_4, x_14); -if (lean_obj_tag(x_18) == 0) +lean_object* x_4; +x_4 = l_Lean_Meta_Tactic_Cbv_getCbvEvalLemmas___redArg(x_1, x_2); +if (lean_obj_tag(x_4) == 0) { -lean_object* x_19; lean_object* x_20; uint8_t x_21; uint8_t x_53; -x_19 = lean_ctor_get(x_18, 0); -x_53 = !lean_is_exclusive(x_18); -if (x_53 == 0) +lean_object* x_5; lean_object* x_6; uint8_t x_7; uint8_t x_24; +x_5 = lean_ctor_get(x_4, 0); +x_24 = !lean_is_exclusive(x_4); +if (x_24 == 0) { -x_20 = x_18; -x_21 = x_53; -goto block_52; +x_6 = x_4; +x_7 = x_24; +goto block_23; } else { -lean_inc(x_19); -lean_dec(x_18); -x_20 = lean_box(0); -x_21 = x_53; -goto block_52; +lean_inc(x_5); +lean_dec(x_4); +x_6 = lean_box(0); +x_7 = x_24; +goto block_23; } -block_52: +block_23: { -lean_object* x_22; uint8_t x_23; -x_22 = l_Lean_Expr_cleanupAnnotations(x_19); -x_23 = l_Lean_Expr_isApp(x_22); -if (x_23 == 0) +lean_object* x_8; +x_8 = lean_st_ref_get(x_2); +if (lean_obj_tag(x_5) == 0) { -lean_object* x_24; -lean_dec_ref(x_22); -lean_del_object(x_20); -lean_dec_ref(x_6); +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; lean_object* x_14; lean_object* x_15; +x_9 = lean_ctor_get(x_8, 0); +lean_inc_ref(x_9); +lean_dec(x_8); +x_10 = l_Lean_noncomputableExt; +x_11 = lean_ctor_get(x_10, 0); +lean_inc_ref(x_11); +x_12 = lean_ctor_get(x_11, 2); +lean_inc(x_12); +lean_dec_ref(x_11); +x_13 = l_Lean_isNoncomputable(x_9, x_1, x_12); +lean_dec(x_12); +x_14 = lean_box(x_13); +if (x_7 == 0) +{ +lean_ctor_set(x_6, 0, x_14); +x_15 = x_6; +goto block_16; +} +else +{ +lean_object* x_17; +x_17 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_17, 0, x_14); +x_15 = x_17; +goto block_16; +} +block_16: +{ +return x_15; +} +} +else +{ +uint8_t x_18; lean_object* x_19; lean_object* x_20; lean_dec_ref(x_5); -lean_dec_ref(x_4); -lean_dec_ref(x_3); -lean_dec_ref(x_2); -x_24 = lean_apply_10(x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, lean_box(0)); -return x_24; +lean_dec(x_8); +lean_dec(x_1); +x_18 = 0; +x_19 = lean_box(x_18); +if (x_7 == 0) +{ +lean_ctor_set(x_6, 0, x_19); +x_20 = x_6; +goto block_21; } else { -lean_object* x_25; lean_object* x_26; uint8_t x_27; -x_25 = lean_ctor_get(x_22, 1); -lean_inc_ref(x_25); -x_26 = l_Lean_Expr_appFnCleanup___redArg(x_22); -x_27 = l_Lean_Expr_isApp(x_26); -if (x_27 == 0) +lean_object* x_22; +x_22 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_22, 0, x_19); +x_20 = x_22; +goto block_21; +} +block_21: +{ +return x_20; +} +} +} +} +else +{ +lean_object* x_25; lean_object* x_26; uint8_t x_27; uint8_t x_32; +lean_dec(x_1); +x_25 = lean_ctor_get(x_4, 0); +x_32 = !lean_is_exclusive(x_4); +if (x_32 == 0) +{ +x_26 = x_4; +x_27 = x_32; +goto block_31; +} +else +{ +lean_inc(x_25); +lean_dec(x_4); +x_26 = lean_box(0); +x_27 = x_32; +goto block_31; +} +block_31: { lean_object* x_28; -lean_dec_ref(x_26); -lean_dec_ref(x_25); -lean_del_object(x_20); -lean_dec_ref(x_6); -lean_dec_ref(x_5); -lean_dec_ref(x_4); -lean_dec_ref(x_3); -lean_dec_ref(x_2); -x_28 = lean_apply_10(x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, lean_box(0)); +if (x_27 == 0) +{ +x_28 = x_26; +goto block_29; +} +else +{ +lean_object* x_30; +x_30 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_30, 0, x_25); +x_28 = x_30; +goto block_29; +} +block_29: +{ return x_28; } -else +} +} +} +} +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_isCbvNoncomputable___redArg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: { -lean_object* x_29; lean_object* x_30; uint8_t x_31; -x_29 = l_Lean_Expr_appFnCleanup___redArg(x_26); -x_30 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__2)); -x_31 = l_Lean_Expr_isConstOf(x_29, x_30); -if (x_31 == 0) +lean_object* x_4; +x_4 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_isCbvNoncomputable___redArg(x_1, x_2); +lean_dec(x_2); +return x_4; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_isCbvNoncomputable(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: { -lean_object* x_32; uint8_t x_33; -x_32 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__4)); -x_33 = l_Lean_Expr_isConstOf(x_29, x_32); -lean_dec_ref(x_29); -if (x_33 == 0) +lean_object* x_5; +x_5 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_isCbvNoncomputable___redArg(x_1, x_3); +return x_5; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_isCbvNoncomputable___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: { -lean_object* x_34; -lean_dec_ref(x_25); -lean_del_object(x_20); -lean_dec_ref(x_6); -lean_dec_ref(x_5); -lean_dec_ref(x_4); -lean_dec_ref(x_3); +lean_object* x_5; +x_5 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_isCbvNoncomputable(x_1, x_2, x_3); +lean_dec(x_3); lean_dec_ref(x_2); -x_34 = lean_apply_10(x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, lean_box(0)); -return x_34; +return x_5; +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_anyMUnsafe_any___at___00__private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance_spec__0___redArg(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4) { +_start: +{ +uint8_t x_6; +x_6 = lean_usize_dec_eq(x_2, x_3); +if (x_6 == 0) +{ +lean_object* x_7; lean_object* x_8; +x_7 = lean_array_uget_borrowed(x_1, x_2); +lean_inc(x_7); +x_8 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_isCbvNoncomputable___redArg(x_7, x_4); +if (lean_obj_tag(x_8) == 0) +{ +lean_object* x_9; lean_object* x_10; uint8_t x_11; uint8_t x_20; +x_9 = lean_ctor_get(x_8, 0); +x_20 = !lean_is_exclusive(x_8); +if (x_20 == 0) +{ +x_10 = x_8; +x_11 = x_20; +goto block_19; } else { -lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; -lean_dec(x_16); -lean_dec_ref(x_15); -lean_dec(x_14); -lean_dec_ref(x_13); -lean_dec(x_12); -lean_dec_ref(x_11); -lean_dec(x_10); -lean_dec_ref(x_9); +lean_inc(x_9); lean_dec(x_8); -lean_dec_ref(x_7); -x_35 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__8)); -x_36 = l_Lean_Expr_constLevels_x21(x_1); -x_37 = l_Lean_mkConst(x_35, x_36); -lean_inc_ref(x_5); -x_38 = l_Lean_mkApp6(x_37, x_2, x_3, x_4, x_5, x_6, x_25); -x_39 = lean_alloc_ctor(1, 2, 1); -lean_ctor_set(x_39, 0, x_5); -lean_ctor_set(x_39, 1, x_38); -lean_ctor_set_uint8(x_39, sizeof(void*)*2, x_31); -if (x_21 == 0) +x_10 = lean_box(0); +x_11 = x_20; +goto block_19; +} +block_19: { -lean_ctor_set(x_20, 0, x_39); -x_40 = x_20; -goto block_41; +uint8_t x_12; +x_12 = lean_unbox(x_9); +if (x_12 == 0) +{ +size_t x_13; size_t x_14; +lean_del_object(x_10); +lean_dec(x_9); +x_13 = 1; +x_14 = lean_usize_add(x_2, x_13); +x_2 = x_14; +goto _start; } else { -lean_object* x_42; -x_42 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_42, 0, x_39); -x_40 = x_42; -goto block_41; -} -block_41: +lean_object* x_16; +if (x_11 == 0) { -return x_40; +x_16 = x_10; +goto block_17; +} +else +{ +lean_object* x_18; +x_18 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_18, 0, x_9); +x_16 = x_18; +goto block_17; +} +block_17: +{ +return x_16; +} } } } else { -lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; uint8_t x_47; lean_object* x_48; lean_object* x_49; -lean_dec_ref(x_29); -lean_dec(x_16); -lean_dec_ref(x_15); -lean_dec(x_14); -lean_dec_ref(x_13); +return x_8; +} +} +else +{ +uint8_t x_21; lean_object* x_22; lean_object* x_23; +x_21 = 0; +x_22 = lean_box(x_21); +x_23 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_23, 0, x_22); +return x_23; +} +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_anyMUnsafe_any___at___00__private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance_spec__0___redArg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +size_t x_6; size_t x_7; lean_object* x_8; +x_6 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_7 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_8 = l___private_Init_Data_Array_Basic_0__Array_anyMUnsafe_any___at___00__private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance_spec__0___redArg(x_1, x_6, x_7, x_4); +lean_dec(x_4); +lean_dec_ref(x_1); +return x_8; +} +} +static lean_object* _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__2(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__1)); +x_3 = l_Lean_mkConst(x_2, x_1); +return x_3; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_9 = lean_obj_once(&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__2, &l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__2_once, _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__2); +x_10 = l_Lean_Expr_app___override(x_9, x_1); +x_11 = lean_box(0); +lean_inc(x_7); +x_12 = l_Lean_Meta_trySynthInstance(x_10, x_11, x_4, x_5, x_6, x_7); +if (lean_obj_tag(x_12) == 0) +{ +lean_object* x_13; lean_object* x_14; uint8_t x_15; uint8_t x_70; +x_13 = lean_ctor_get(x_12, 0); +x_70 = !lean_is_exclusive(x_12); +if (x_70 == 0) +{ +x_14 = x_12; +x_15 = x_70; +goto block_69; +} +else +{ +lean_inc(x_13); lean_dec(x_12); -lean_dec_ref(x_11); -lean_dec(x_10); -lean_dec_ref(x_9); -lean_dec(x_8); -lean_dec_ref(x_7); -x_43 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__10)); -x_44 = l_Lean_Expr_constLevels_x21(x_1); -x_45 = l_Lean_mkConst(x_43, x_44); -lean_inc_ref(x_6); -x_46 = l_Lean_mkApp6(x_45, x_2, x_3, x_4, x_5, x_6, x_25); -x_47 = 0; -x_48 = lean_alloc_ctor(1, 2, 1); -lean_ctor_set(x_48, 0, x_6); -lean_ctor_set(x_48, 1, x_46); -lean_ctor_set_uint8(x_48, sizeof(void*)*2, x_47); -if (x_21 == 0) +x_14 = lean_box(0); +x_15 = x_70; +goto block_69; +} +block_69: { -lean_ctor_set(x_20, 0, x_48); -x_49 = x_20; -goto block_50; +if (lean_obj_tag(x_13) == 1) +{ +lean_object* x_16; lean_object* x_17; uint8_t x_18; uint8_t x_65; +lean_del_object(x_14); +x_16 = lean_ctor_get(x_13, 0); +x_65 = !lean_is_exclusive(x_13); +if (x_65 == 0) +{ +x_17 = x_13; +x_18 = x_65; +goto block_64; +} +else +{ +lean_inc(x_16); +lean_dec(x_13); +x_17 = lean_box(0); +x_18 = x_65; +goto block_64; +} +block_64: +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; uint8_t x_43; +lean_inc(x_16); +x_40 = l_Lean_Expr_getUsedConstants(x_16); +x_41 = lean_unsigned_to_nat(0u); +x_42 = lean_array_get_size(x_40); +x_43 = lean_nat_dec_lt(x_41, x_42); +if (x_43 == 0) +{ +lean_dec_ref(x_40); +lean_dec(x_7); +goto block_39; +} +else +{ +if (x_43 == 0) +{ +lean_dec_ref(x_40); +lean_dec(x_7); +goto block_39; +} +else +{ +size_t x_44; size_t x_45; lean_object* x_46; +x_44 = 0; +x_45 = lean_usize_of_nat(x_42); +x_46 = l___private_Init_Data_Array_Basic_0__Array_anyMUnsafe_any___at___00__private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance_spec__0___redArg(x_40, x_44, x_45, x_7); +lean_dec(x_7); +lean_dec_ref(x_40); +if (lean_obj_tag(x_46) == 0) +{ +lean_object* x_47; lean_object* x_48; uint8_t x_49; uint8_t x_55; +x_47 = lean_ctor_get(x_46, 0); +x_55 = !lean_is_exclusive(x_46); +if (x_55 == 0) +{ +x_48 = x_46; +x_49 = x_55; +goto block_54; +} +else +{ +lean_inc(x_47); +lean_dec(x_46); +x_48 = lean_box(0); +x_49 = x_55; +goto block_54; +} +block_54: +{ +uint8_t x_50; +x_50 = lean_unbox(x_47); +lean_dec(x_47); +if (x_50 == 0) +{ +lean_del_object(x_48); +goto block_39; } else { lean_object* x_51; -x_51 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_51, 0, x_48); -x_49 = x_51; -goto block_50; -} -block_50: +lean_del_object(x_17); +lean_dec(x_16); +if (x_49 == 0) { -return x_49; +lean_ctor_set(x_48, 0, x_11); +x_51 = x_48; +goto block_52; +} +else +{ +lean_object* x_53; +x_53 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_53, 0, x_11); +x_51 = x_53; +goto block_52; +} +block_52: +{ +return x_51; +} +} +} +} +else +{ +lean_object* x_56; lean_object* x_57; uint8_t x_58; uint8_t x_63; +lean_del_object(x_17); +lean_dec(x_16); +x_56 = lean_ctor_get(x_46, 0); +x_63 = !lean_is_exclusive(x_46); +if (x_63 == 0) +{ +x_57 = x_46; +x_58 = x_63; +goto block_62; +} +else +{ +lean_inc(x_56); +lean_dec(x_46); +x_57 = lean_box(0); +x_58 = x_63; +goto block_62; +} +block_62: +{ +lean_object* x_59; +if (x_58 == 0) +{ +x_59 = x_57; +goto block_60; +} +else +{ +lean_object* x_61; +x_61 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_61, 0, x_56); +x_59 = x_61; +goto block_60; +} +block_60: +{ +return x_59; +} +} +} +} +} +block_39: +{ +lean_object* x_19; +x_19 = l_Lean_Meta_Sym_shareCommon___redArg(x_16, x_3); +if (lean_obj_tag(x_19) == 0) +{ +lean_object* x_20; lean_object* x_21; uint8_t x_22; uint8_t x_30; +x_20 = lean_ctor_get(x_19, 0); +x_30 = !lean_is_exclusive(x_19); +if (x_30 == 0) +{ +x_21 = x_19; +x_22 = x_30; +goto block_29; +} +else +{ +lean_inc(x_20); +lean_dec(x_19); +x_21 = lean_box(0); +x_22 = x_30; +goto block_29; +} +block_29: +{ +lean_object* x_23; +if (x_18 == 0) +{ +lean_ctor_set(x_17, 0, x_20); +x_23 = x_17; +goto block_27; +} +else +{ +lean_object* x_28; +x_28 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_28, 0, x_20); +x_23 = x_28; +goto block_27; +} +block_27: +{ +lean_object* x_24; +if (x_22 == 0) +{ +lean_ctor_set(x_21, 0, x_23); +x_24 = x_21; +goto block_25; +} +else +{ +lean_object* x_26; +x_26 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_26, 0, x_23); +x_24 = x_26; +goto block_25; +} +block_25: +{ +return x_24; +} +} +} +} +else +{ +lean_object* x_31; lean_object* x_32; uint8_t x_33; uint8_t x_38; +lean_del_object(x_17); +x_31 = lean_ctor_get(x_19, 0); +x_38 = !lean_is_exclusive(x_19); +if (x_38 == 0) +{ +x_32 = x_19; +x_33 = x_38; +goto block_37; +} +else +{ +lean_inc(x_31); +lean_dec(x_19); +x_32 = lean_box(0); +x_33 = x_38; +goto block_37; +} +block_37: +{ +lean_object* x_34; +if (x_33 == 0) +{ +x_34 = x_32; +goto block_35; +} +else +{ +lean_object* x_36; +x_36 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_36, 0, x_31); +x_34 = x_36; +goto block_35; +} +block_35: +{ +return x_34; } } } @@ -603,63 +1035,347 @@ return x_49; } else { -lean_object* x_54; lean_object* x_55; uint8_t x_56; uint8_t x_61; -lean_dec(x_16); -lean_dec_ref(x_15); -lean_dec(x_14); -lean_dec_ref(x_13); +lean_object* x_66; +lean_dec(x_13); +lean_dec(x_7); +if (x_15 == 0) +{ +lean_ctor_set(x_14, 0, x_11); +x_66 = x_14; +goto block_67; +} +else +{ +lean_object* x_68; +x_68 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_68, 0, x_11); +x_66 = x_68; +goto block_67; +} +block_67: +{ +return x_66; +} +} +} +} +else +{ +lean_object* x_71; lean_object* x_72; uint8_t x_73; uint8_t x_78; +lean_dec(x_7); +x_71 = lean_ctor_get(x_12, 0); +x_78 = !lean_is_exclusive(x_12); +if (x_78 == 0) +{ +x_72 = x_12; +x_73 = x_78; +goto block_77; +} +else +{ +lean_inc(x_71); lean_dec(x_12); -lean_dec_ref(x_11); -lean_dec(x_10); -lean_dec_ref(x_9); -lean_dec(x_8); -lean_dec_ref(x_7); +x_72 = lean_box(0); +x_73 = x_78; +goto block_77; +} +block_77: +{ +lean_object* x_74; +if (x_73 == 0) +{ +x_74 = x_72; +goto block_75; +} +else +{ +lean_object* x_76; +x_76 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_76, 0, x_71); +x_74 = x_76; +goto block_75; +} +block_75: +{ +return x_74; +} +} +} +} +} +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +_start: +{ +lean_object* x_9; +x_9 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_3); +lean_dec_ref(x_2); +return x_9; +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_anyMUnsafe_any___at___00__private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance_spec__0(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +_start: +{ +lean_object* x_11; +x_11 = l___private_Init_Data_Array_Basic_0__Array_anyMUnsafe_any___at___00__private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance_spec__0___redArg(x_1, x_2, x_3, x_9); +return x_11; +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_anyMUnsafe_any___at___00__private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance_spec__0___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { +_start: +{ +size_t x_11; size_t x_12; lean_object* x_13; +x_11 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_12 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_13 = l___private_Init_Data_Array_Basic_0__Array_anyMUnsafe_any___at___00__private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance_spec__0(x_1, x_11, x_12, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_9); +lean_dec_ref(x_8); +lean_dec(x_7); +lean_dec_ref(x_6); +lean_dec(x_5); +lean_dec_ref(x_4); +lean_dec_ref(x_1); +return x_13; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16, lean_object* x_17) { +_start: +{ +lean_object* x_19; +x_19 = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(x_7, x_15); +if (lean_obj_tag(x_19) == 0) +{ +lean_object* x_20; lean_object* x_21; uint8_t x_22; uint8_t x_54; +x_20 = lean_ctor_get(x_19, 0); +x_54 = !lean_is_exclusive(x_19); +if (x_54 == 0) +{ +x_21 = x_19; +x_22 = x_54; +goto block_53; +} +else +{ +lean_inc(x_20); +lean_dec(x_19); +x_21 = lean_box(0); +x_22 = x_54; +goto block_53; +} +block_53: +{ +lean_object* x_23; uint8_t x_24; +x_23 = l_Lean_Expr_cleanupAnnotations(x_20); +x_24 = l_Lean_Expr_isApp(x_23); +if (x_24 == 0) +{ +lean_object* x_25; +lean_dec_ref(x_23); +lean_del_object(x_21); lean_dec_ref(x_6); lean_dec_ref(x_5); lean_dec_ref(x_4); lean_dec_ref(x_3); lean_dec_ref(x_2); -x_54 = lean_ctor_get(x_18, 0); -x_61 = !lean_is_exclusive(x_18); -if (x_61 == 0) -{ -x_55 = x_18; -x_56 = x_61; -goto block_60; +x_25 = lean_apply_10(x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, lean_box(0)); +return x_25; } else { -lean_inc(x_54); -lean_dec(x_18); -x_55 = lean_box(0); -x_56 = x_61; -goto block_60; -} -block_60: +lean_object* x_26; lean_object* x_27; uint8_t x_28; +x_26 = lean_ctor_get(x_23, 1); +lean_inc_ref(x_26); +x_27 = l_Lean_Expr_appFnCleanup___redArg(x_23); +x_28 = l_Lean_Expr_isApp(x_27); +if (x_28 == 0) { -lean_object* x_57; -if (x_56 == 0) -{ -x_57 = x_55; -goto block_58; +lean_object* x_29; +lean_dec_ref(x_27); +lean_dec_ref(x_26); +lean_del_object(x_21); +lean_dec_ref(x_6); +lean_dec_ref(x_5); +lean_dec_ref(x_4); +lean_dec_ref(x_3); +lean_dec_ref(x_2); +x_29 = lean_apply_10(x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, lean_box(0)); +return x_29; } else { -lean_object* x_59; -x_59 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_59, 0, x_54); -x_57 = x_59; -goto block_58; -} -block_58: +lean_object* x_30; lean_object* x_31; uint8_t x_32; +x_30 = l_Lean_Expr_appFnCleanup___redArg(x_27); +x_31 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__1)); +x_32 = l_Lean_Expr_isConstOf(x_30, x_31); +if (x_32 == 0) { -return x_57; +lean_object* x_33; uint8_t x_34; +x_33 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__3)); +x_34 = l_Lean_Expr_isConstOf(x_30, x_33); +lean_dec_ref(x_30); +if (x_34 == 0) +{ +lean_object* x_35; +lean_dec_ref(x_26); +lean_del_object(x_21); +lean_dec_ref(x_6); +lean_dec_ref(x_5); +lean_dec_ref(x_4); +lean_dec_ref(x_3); +lean_dec_ref(x_2); +x_35 = lean_apply_10(x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, lean_box(0)); +return x_35; +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; +lean_dec(x_17); +lean_dec_ref(x_16); +lean_dec(x_15); +lean_dec_ref(x_14); +lean_dec(x_13); +lean_dec_ref(x_12); +lean_dec(x_11); +lean_dec_ref(x_10); +lean_dec(x_9); +lean_dec_ref(x_8); +x_36 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__7)); +x_37 = l_Lean_Expr_constLevels_x21(x_1); +x_38 = l_Lean_mkConst(x_36, x_37); +lean_inc_ref(x_5); +x_39 = l_Lean_mkApp6(x_38, x_2, x_3, x_4, x_5, x_6, x_26); +x_40 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_40, 0, x_5); +lean_ctor_set(x_40, 1, x_39); +lean_ctor_set_uint8(x_40, sizeof(void*)*2, x_32); +if (x_22 == 0) +{ +lean_ctor_set(x_21, 0, x_40); +x_41 = x_21; +goto block_42; +} +else +{ +lean_object* x_43; +x_43 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_43, 0, x_40); +x_41 = x_43; +goto block_42; +} +block_42: +{ +return x_41; +} +} +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; uint8_t x_48; lean_object* x_49; lean_object* x_50; +lean_dec_ref(x_30); +lean_dec(x_17); +lean_dec_ref(x_16); +lean_dec(x_15); +lean_dec_ref(x_14); +lean_dec(x_13); +lean_dec_ref(x_12); +lean_dec(x_11); +lean_dec_ref(x_10); +lean_dec(x_9); +lean_dec_ref(x_8); +x_44 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__9)); +x_45 = l_Lean_Expr_constLevels_x21(x_1); +x_46 = l_Lean_mkConst(x_44, x_45); +lean_inc_ref(x_6); +x_47 = l_Lean_mkApp6(x_46, x_2, x_3, x_4, x_5, x_6, x_26); +x_48 = 0; +x_49 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_49, 0, x_6); +lean_ctor_set(x_49, 1, x_47); +lean_ctor_set_uint8(x_49, sizeof(void*)*2, x_48); +if (x_22 == 0) +{ +lean_ctor_set(x_21, 0, x_49); +x_50 = x_21; +goto block_51; +} +else +{ +lean_object* x_52; +x_52 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_52, 0, x_49); +x_50 = x_52; +goto block_51; +} +block_51: +{ +return x_50; } } } } } -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___boxed(lean_object** _args) { +} +else +{ +lean_object* x_55; lean_object* x_56; uint8_t x_57; uint8_t x_62; +lean_dec(x_17); +lean_dec_ref(x_16); +lean_dec(x_15); +lean_dec_ref(x_14); +lean_dec(x_13); +lean_dec_ref(x_12); +lean_dec(x_11); +lean_dec_ref(x_10); +lean_dec(x_9); +lean_dec_ref(x_8); +lean_dec_ref(x_6); +lean_dec_ref(x_5); +lean_dec_ref(x_4); +lean_dec_ref(x_3); +lean_dec_ref(x_2); +x_55 = lean_ctor_get(x_19, 0); +x_62 = !lean_is_exclusive(x_19); +if (x_62 == 0) +{ +x_56 = x_19; +x_57 = x_62; +goto block_61; +} +else +{ +lean_inc(x_55); +lean_dec(x_19); +x_56 = lean_box(0); +x_57 = x_62; +goto block_61; +} +block_61: +{ +lean_object* x_58; +if (x_57 == 0) +{ +x_58 = x_56; +goto block_59; +} +else +{ +lean_object* x_60; +x_60 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_60, 0, x_55); +x_58 = x_60; +goto block_59; +} +block_59: +{ +return x_58; +} +} +} +} +} +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___boxed(lean_object** _args) { lean_object* x_1 = _args[0]; lean_object* x_2 = _args[1]; lean_object* x_3 = _args[2]; @@ -677,15 +1393,288 @@ lean_object* x_14 = _args[13]; lean_object* x_15 = _args[14]; lean_object* x_16 = _args[15]; lean_object* x_17 = _args[16]; +lean_object* x_18 = _args[17]; _start: { -lean_object* x_18; -x_18 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +lean_object* x_19; +x_19 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17); lean_dec_ref(x_1); -return x_18; +return x_19; } } -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidableWithFallback(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16, lean_object* x_17, lean_object* x_18, lean_object* x_19) { +_start: +{ +lean_object* x_21; +x_21 = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(x_9, x_17); +if (lean_obj_tag(x_21) == 0) +{ +lean_object* x_22; lean_object* x_23; uint8_t x_24; uint8_t x_56; +x_22 = lean_ctor_get(x_21, 0); +x_56 = !lean_is_exclusive(x_21); +if (x_56 == 0) +{ +x_23 = x_21; +x_24 = x_56; +goto block_55; +} +else +{ +lean_inc(x_22); +lean_dec(x_21); +x_23 = lean_box(0); +x_24 = x_56; +goto block_55; +} +block_55: +{ +lean_object* x_25; uint8_t x_26; +x_25 = l_Lean_Expr_cleanupAnnotations(x_22); +x_26 = l_Lean_Expr_isApp(x_25); +if (x_26 == 0) +{ +lean_object* x_27; +lean_dec_ref(x_25); +lean_del_object(x_23); +lean_dec_ref(x_8); +lean_dec_ref(x_7); +lean_dec_ref(x_6); +lean_dec_ref(x_5); +lean_dec_ref(x_4); +lean_dec_ref(x_3); +lean_dec_ref(x_2); +x_27 = lean_apply_10(x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19, lean_box(0)); +return x_27; +} +else +{ +lean_object* x_28; lean_object* x_29; uint8_t x_30; +x_28 = lean_ctor_get(x_25, 1); +lean_inc_ref(x_28); +x_29 = l_Lean_Expr_appFnCleanup___redArg(x_25); +x_30 = l_Lean_Expr_isApp(x_29); +if (x_30 == 0) +{ +lean_object* x_31; +lean_dec_ref(x_29); +lean_dec_ref(x_28); +lean_del_object(x_23); +lean_dec_ref(x_8); +lean_dec_ref(x_7); +lean_dec_ref(x_6); +lean_dec_ref(x_5); +lean_dec_ref(x_4); +lean_dec_ref(x_3); +lean_dec_ref(x_2); +x_31 = lean_apply_10(x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19, lean_box(0)); +return x_31; +} +else +{ +lean_object* x_32; lean_object* x_33; uint8_t x_34; +x_32 = l_Lean_Expr_appFnCleanup___redArg(x_29); +x_33 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__1)); +x_34 = l_Lean_Expr_isConstOf(x_32, x_33); +if (x_34 == 0) +{ +lean_object* x_35; uint8_t x_36; +x_35 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__3)); +x_36 = l_Lean_Expr_isConstOf(x_32, x_35); +lean_dec_ref(x_32); +if (x_36 == 0) +{ +lean_object* x_37; +lean_dec_ref(x_28); +lean_del_object(x_23); +lean_dec_ref(x_8); +lean_dec_ref(x_7); +lean_dec_ref(x_6); +lean_dec_ref(x_5); +lean_dec_ref(x_4); +lean_dec_ref(x_3); +lean_dec_ref(x_2); +x_37 = lean_apply_10(x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19, lean_box(0)); +return x_37; +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; +lean_dec(x_19); +lean_dec_ref(x_18); +lean_dec(x_17); +lean_dec_ref(x_16); +lean_dec(x_15); +lean_dec_ref(x_14); +lean_dec(x_13); +lean_dec_ref(x_12); +lean_dec(x_11); +lean_dec_ref(x_10); +x_38 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__1)); +x_39 = l_Lean_Expr_constLevels_x21(x_1); +x_40 = l_Lean_mkConst(x_38, x_39); +lean_inc_ref(x_5); +x_41 = l_Lean_mkApp8(x_40, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_28); +x_42 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_42, 0, x_5); +lean_ctor_set(x_42, 1, x_41); +lean_ctor_set_uint8(x_42, sizeof(void*)*2, x_34); +if (x_24 == 0) +{ +lean_ctor_set(x_23, 0, x_42); +x_43 = x_23; +goto block_44; +} +else +{ +lean_object* x_45; +x_45 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_45, 0, x_42); +x_43 = x_45; +goto block_44; +} +block_44: +{ +return x_43; +} +} +} +else +{ +lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; uint8_t x_50; lean_object* x_51; lean_object* x_52; +lean_dec_ref(x_32); +lean_dec(x_19); +lean_dec_ref(x_18); +lean_dec(x_17); +lean_dec_ref(x_16); +lean_dec(x_15); +lean_dec_ref(x_14); +lean_dec(x_13); +lean_dec_ref(x_12); +lean_dec(x_11); +lean_dec_ref(x_10); +x_46 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___closed__3)); +x_47 = l_Lean_Expr_constLevels_x21(x_1); +x_48 = l_Lean_mkConst(x_46, x_47); +lean_inc_ref(x_6); +x_49 = l_Lean_mkApp8(x_48, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_28); +x_50 = 0; +x_51 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_51, 0, x_6); +lean_ctor_set(x_51, 1, x_49); +lean_ctor_set_uint8(x_51, sizeof(void*)*2, x_50); +if (x_24 == 0) +{ +lean_ctor_set(x_23, 0, x_51); +x_52 = x_23; +goto block_53; +} +else +{ +lean_object* x_54; +x_54 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_54, 0, x_51); +x_52 = x_54; +goto block_53; +} +block_53: +{ +return x_52; +} +} +} +} +} +} +else +{ +lean_object* x_57; lean_object* x_58; uint8_t x_59; uint8_t x_64; +lean_dec(x_19); +lean_dec_ref(x_18); +lean_dec(x_17); +lean_dec_ref(x_16); +lean_dec(x_15); +lean_dec_ref(x_14); +lean_dec(x_13); +lean_dec_ref(x_12); +lean_dec(x_11); +lean_dec_ref(x_10); +lean_dec_ref(x_8); +lean_dec_ref(x_7); +lean_dec_ref(x_6); +lean_dec_ref(x_5); +lean_dec_ref(x_4); +lean_dec_ref(x_3); +lean_dec_ref(x_2); +x_57 = lean_ctor_get(x_21, 0); +x_64 = !lean_is_exclusive(x_21); +if (x_64 == 0) +{ +x_58 = x_21; +x_59 = x_64; +goto block_63; +} +else +{ +lean_inc(x_57); +lean_dec(x_21); +x_58 = lean_box(0); +x_59 = x_64; +goto block_63; +} +block_63: +{ +lean_object* x_60; +if (x_59 == 0) +{ +x_60 = x_58; +goto block_61; +} +else +{ +lean_object* x_62; +x_62 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_62, 0, x_57); +x_60 = x_62; +goto block_61; +} +block_61: +{ +return x_60; +} +} +} +} +} +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr___boxed(lean_object** _args) { +lean_object* x_1 = _args[0]; +lean_object* x_2 = _args[1]; +lean_object* x_3 = _args[2]; +lean_object* x_4 = _args[3]; +lean_object* x_5 = _args[4]; +lean_object* x_6 = _args[5]; +lean_object* x_7 = _args[6]; +lean_object* x_8 = _args[7]; +lean_object* x_9 = _args[8]; +lean_object* x_10 = _args[9]; +lean_object* x_11 = _args[10]; +lean_object* x_12 = _args[11]; +lean_object* x_13 = _args[12]; +lean_object* x_14 = _args[13]; +lean_object* x_15 = _args[14]; +lean_object* x_16 = _args[15]; +lean_object* x_17 = _args[16]; +lean_object* x_18 = _args[17]; +lean_object* x_19 = _args[18]; +lean_object* x_20 = _args[19]; +_start: +{ +lean_object* x_21; +x_21 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19); +lean_dec_ref(x_1); +return x_21; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchIteDecidable(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { _start: { lean_object* x_18; @@ -710,17 +1699,17 @@ if (lean_obj_tag(x_19) == 0) { lean_object* x_20; lean_dec_ref(x_19); -x_20 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +lean_inc_ref(x_4); +x_20 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable(x_1, x_2, x_3, x_4, x_5, x_6, x_4, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); return x_20; } else { lean_object* x_21; lean_object* x_22; -lean_dec_ref(x_4); x_21 = lean_ctor_get(x_19, 0); lean_inc_ref(x_21); lean_dec_ref(x_19); -x_22 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable(x_1, x_2, x_3, x_21, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +x_22 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable(x_1, x_2, x_3, x_4, x_5, x_6, x_21, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); return x_22; } } @@ -745,7 +1734,7 @@ return x_18; } } } -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidableWithFallback___boxed(lean_object** _args) { +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchIteDecidable___boxed(lean_object** _args) { lean_object* x_1 = _args[0]; lean_object* x_2 = _args[1]; lean_object* x_3 = _args[2]; @@ -766,11 +1755,103 @@ lean_object* x_17 = _args[16]; _start: { lean_object* x_18; -x_18 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidableWithFallback(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +x_18 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchIteDecidable(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); lean_dec_ref(x_1); return x_18; } } +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchIteDecidableCongr(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16, lean_object* x_17, lean_object* x_18, lean_object* x_19) { +_start: +{ +lean_object* x_21; +lean_inc(x_19); +lean_inc_ref(x_18); +lean_inc(x_17); +lean_inc_ref(x_16); +lean_inc(x_15); +lean_inc_ref(x_14); +lean_inc(x_13); +lean_inc_ref(x_12); +lean_inc(x_11); +lean_inc_ref(x_9); +x_21 = lean_sym_simp(x_9, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19); +if (lean_obj_tag(x_21) == 0) +{ +lean_object* x_22; +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +lean_dec_ref(x_21); +if (lean_obj_tag(x_22) == 0) +{ +lean_object* x_23; +lean_dec_ref(x_22); +x_23 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19); +return x_23; +} +else +{ +lean_object* x_24; lean_object* x_25; +lean_dec_ref(x_9); +x_24 = lean_ctor_get(x_22, 0); +lean_inc_ref(x_24); +lean_dec_ref(x_22); +x_25 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidableCongr(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_24, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19); +return x_25; +} +} +else +{ +lean_dec(x_19); +lean_dec_ref(x_18); +lean_dec(x_17); +lean_dec_ref(x_16); +lean_dec(x_15); +lean_dec_ref(x_14); +lean_dec(x_13); +lean_dec_ref(x_12); +lean_dec(x_11); +lean_dec_ref(x_10); +lean_dec_ref(x_9); +lean_dec_ref(x_8); +lean_dec_ref(x_7); +lean_dec_ref(x_6); +lean_dec_ref(x_5); +lean_dec_ref(x_4); +lean_dec_ref(x_3); +lean_dec_ref(x_2); +return x_21; +} +} +} +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchIteDecidableCongr___boxed(lean_object** _args) { +lean_object* x_1 = _args[0]; +lean_object* x_2 = _args[1]; +lean_object* x_3 = _args[2]; +lean_object* x_4 = _args[3]; +lean_object* x_5 = _args[4]; +lean_object* x_6 = _args[5]; +lean_object* x_7 = _args[6]; +lean_object* x_8 = _args[7]; +lean_object* x_9 = _args[8]; +lean_object* x_10 = _args[9]; +lean_object* x_11 = _args[10]; +lean_object* x_12 = _args[11]; +lean_object* x_13 = _args[12]; +lean_object* x_14 = _args[13]; +lean_object* x_15 = _args[14]; +lean_object* x_16 = _args[15]; +lean_object* x_17 = _args[16]; +lean_object* x_18 = _args[17]; +lean_object* x_19 = _args[18]; +lean_object* x_20 = _args[19]; +_start: +{ +lean_object* x_21; +x_21 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchIteDecidableCongr(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19); +lean_dec_ref(x_1); +return x_21; +} +} LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpIteCbv___lam__0(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { _start: { @@ -1491,7 +2572,7 @@ lean_object* x_49; lean_object* x_50; lean_ctor_set_uint8(x_48, 0, x_33); x_49 = lean_alloc_closure((void*)(l_Lean_Meta_Sym_Simp_simpIteCbv___lam__0___boxed), 11, 1); lean_closure_set(x_49, 0, x_48); -x_50 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidableWithFallback(x_31, x_30, x_27, x_24, x_21, x_18, x_49, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +x_50 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchIteDecidable(x_31, x_30, x_27, x_24, x_21, x_18, x_49, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); lean_dec_ref(x_31); return x_50; } @@ -1711,15 +2792,15 @@ return x_85; } else { -lean_object* x_92; lean_object* x_93; lean_object* x_94; uint8_t x_95; uint8_t x_153; +lean_object* x_92; lean_object* x_93; lean_object* x_94; uint8_t x_95; uint8_t x_154; x_92 = lean_ctor_get(x_35, 0); x_93 = lean_ctor_get(x_35, 1); -x_153 = !lean_is_exclusive(x_35); -if (x_153 == 0) +x_154 = !lean_is_exclusive(x_35); +if (x_154 == 0) { x_94 = x_35; -x_95 = x_153; -goto block_152; +x_95 = x_154; +goto block_153; } else { @@ -1727,33 +2808,33 @@ lean_inc(x_93); lean_inc(x_92); lean_dec(x_35); x_94 = lean_box(0); -x_95 = x_153; -goto block_152; +x_95 = x_154; +goto block_153; } -block_152: +block_153: { lean_object* x_96; x_96 = l_Lean_Meta_Sym_isTrueExpr___redArg(x_92, x_6); if (lean_obj_tag(x_96) == 0) { -lean_object* x_97; lean_object* x_98; uint8_t x_99; uint8_t x_143; +lean_object* x_97; lean_object* x_98; uint8_t x_99; uint8_t x_144; x_97 = lean_ctor_get(x_96, 0); -x_143 = !lean_is_exclusive(x_96); -if (x_143 == 0) +x_144 = !lean_is_exclusive(x_96); +if (x_144 == 0) { x_98 = x_96; -x_99 = x_143; -goto block_142; +x_99 = x_144; +goto block_143; } else { lean_inc(x_97); lean_dec(x_96); x_98 = lean_box(0); -x_99 = x_143; -goto block_142; +x_99 = x_144; +goto block_143; } -block_142: +block_143: { uint8_t x_100; x_100 = lean_unbox(x_97); @@ -1764,31 +2845,31 @@ lean_del_object(x_98); x_101 = l_Lean_Meta_Sym_isFalseExpr___redArg(x_92, x_6); if (lean_obj_tag(x_101) == 0) { -lean_object* x_102; lean_object* x_103; uint8_t x_104; uint8_t x_124; +lean_object* x_102; lean_object* x_103; uint8_t x_104; uint8_t x_125; x_102 = lean_ctor_get(x_101, 0); -x_124 = !lean_is_exclusive(x_101); -if (x_124 == 0) +x_125 = !lean_is_exclusive(x_101); +if (x_125 == 0) { x_103 = x_101; -x_104 = x_124; -goto block_123; +x_104 = x_125; +goto block_124; } else { lean_inc(x_102); lean_dec(x_101); x_103 = lean_box(0); -x_104 = x_124; -goto block_123; +x_104 = x_125; +goto block_124; } -block_123: +block_124: { uint8_t x_105; x_105 = lean_unbox(x_102); lean_dec(x_102); if (x_105 == 0) { -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; +lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_del_object(x_103); lean_dec(x_97); lean_del_object(x_94); @@ -1801,8 +2882,11 @@ x_107 = l_Lean_mkApp4(x_106, x_27, x_92, x_24, x_93); x_108 = lean_unsigned_to_nat(4u); x_109 = l_Lean_Expr_getBoundedAppFn(x_108, x_2); x_110 = lean_box(x_33); +lean_inc_ref(x_93); lean_inc_ref(x_18); lean_inc_ref(x_21); +lean_inc_ref(x_107); +lean_inc_ref(x_92); x_111 = lean_alloc_closure((void*)(l_Lean_Meta_Sym_Simp_simpIteCbv___lam__1___boxed), 18, 8); lean_closure_set(x_111, 0, x_109); lean_closure_set(x_111, 1, x_92); @@ -1812,13 +2896,30 @@ lean_closure_set(x_111, 4, x_18); lean_closure_set(x_111, 5, x_2); lean_closure_set(x_111, 6, x_93); lean_closure_set(x_111, 7, x_110); -x_112 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidableWithFallback(x_31, x_30, x_27, x_24, x_21, x_18, x_111, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +lean_inc_ref(x_18); +lean_inc_ref(x_21); +lean_inc_ref(x_24); +lean_inc_ref(x_27); +lean_inc_ref(x_30); +lean_inc_ref(x_31); +x_112 = lean_alloc_closure((void*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchIteDecidableCongr___boxed), 20, 10); +lean_closure_set(x_112, 0, x_31); +lean_closure_set(x_112, 1, x_30); +lean_closure_set(x_112, 2, x_27); +lean_closure_set(x_112, 3, x_24); +lean_closure_set(x_112, 4, x_21); +lean_closure_set(x_112, 5, x_18); +lean_closure_set(x_112, 6, x_92); +lean_closure_set(x_112, 7, x_93); +lean_closure_set(x_112, 8, x_107); +lean_closure_set(x_112, 9, x_111); +x_113 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchIteDecidable(x_31, x_30, x_27, x_24, x_21, x_18, x_112, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); lean_dec_ref(x_31); -return x_112; +return x_113; } else { -lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; +lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_dec_ref(x_92); lean_dec_ref(x_31); lean_dec_ref(x_30); @@ -1834,48 +2935,48 @@ lean_dec_ref(x_6); lean_dec(x_5); lean_dec_ref(x_4); lean_dec(x_3); -x_113 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__8)); -x_114 = l_Lean_Expr_replaceFn(x_2, x_113); -x_115 = l_Lean_Expr_app___override(x_114, x_93); +x_114 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__8)); +x_115 = l_Lean_Expr_replaceFn(x_2, x_114); +x_116 = l_Lean_Expr_app___override(x_115, x_93); if (x_95 == 0) { -lean_ctor_set(x_94, 1, x_115); +lean_ctor_set(x_94, 1, x_116); lean_ctor_set(x_94, 0, x_18); -x_116 = x_94; -goto block_121; +x_117 = x_94; +goto block_122; } else { -lean_object* x_122; -x_122 = lean_alloc_ctor(1, 2, 1); -lean_ctor_set(x_122, 0, x_18); -lean_ctor_set(x_122, 1, x_115); -x_116 = x_122; -goto block_121; +lean_object* x_123; +x_123 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_123, 0, x_18); +lean_ctor_set(x_123, 1, x_116); +x_117 = x_123; +goto block_122; } -block_121: +block_122: { -uint8_t x_117; lean_object* x_118; -x_117 = lean_unbox(x_97); +uint8_t x_118; lean_object* x_119; +x_118 = lean_unbox(x_97); lean_dec(x_97); -lean_ctor_set_uint8(x_116, sizeof(void*)*2, x_117); +lean_ctor_set_uint8(x_117, sizeof(void*)*2, x_118); if (x_104 == 0) { -lean_ctor_set(x_103, 0, x_116); -x_118 = x_103; -goto block_119; +lean_ctor_set(x_103, 0, x_117); +x_119 = x_103; +goto block_120; } else { -lean_object* x_120; -x_120 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_120, 0, x_116); -x_118 = x_120; -goto block_119; +lean_object* x_121; +x_121 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_121, 0, x_117); +x_119 = x_121; +goto block_120; } -block_119: +block_120: { -return x_118; +return x_119; } } } @@ -1883,7 +2984,7 @@ return x_118; } else { -lean_object* x_125; lean_object* x_126; uint8_t x_127; uint8_t x_132; +lean_object* x_126; lean_object* x_127; uint8_t x_128; uint8_t x_133; lean_dec(x_97); lean_del_object(x_94); lean_dec_ref(x_93); @@ -1904,48 +3005,48 @@ lean_dec(x_5); lean_dec_ref(x_4); lean_dec(x_3); lean_dec_ref(x_2); -x_125 = lean_ctor_get(x_101, 0); -x_132 = !lean_is_exclusive(x_101); -if (x_132 == 0) +x_126 = lean_ctor_get(x_101, 0); +x_133 = !lean_is_exclusive(x_101); +if (x_133 == 0) { -x_126 = x_101; -x_127 = x_132; -goto block_131; +x_127 = x_101; +x_128 = x_133; +goto block_132; } else { -lean_inc(x_125); +lean_inc(x_126); lean_dec(x_101); -x_126 = lean_box(0); -x_127 = x_132; -goto block_131; +x_127 = lean_box(0); +x_128 = x_133; +goto block_132; } -block_131: +block_132: { -lean_object* x_128; -if (x_127 == 0) +lean_object* x_129; +if (x_128 == 0) { -x_128 = x_126; -goto block_129; +x_129 = x_127; +goto block_130; } else { -lean_object* x_130; -x_130 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_130, 0, x_125); -x_128 = x_130; -goto block_129; +lean_object* x_131; +x_131 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_131, 0, x_126); +x_129 = x_131; +goto block_130; } -block_129: +block_130: { -return x_128; +return x_129; } } } } else { -lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; +lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_dec(x_97); lean_dec_ref(x_92); lean_dec_ref(x_31); @@ -1962,46 +3063,46 @@ lean_dec_ref(x_6); lean_dec(x_5); lean_dec_ref(x_4); lean_dec(x_3); -x_133 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__10)); -x_134 = l_Lean_Expr_replaceFn(x_2, x_133); -x_135 = l_Lean_Expr_app___override(x_134, x_93); +x_134 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__10)); +x_135 = l_Lean_Expr_replaceFn(x_2, x_134); +x_136 = l_Lean_Expr_app___override(x_135, x_93); if (x_95 == 0) { -lean_ctor_set(x_94, 1, x_135); +lean_ctor_set(x_94, 1, x_136); lean_ctor_set(x_94, 0, x_21); -x_136 = x_94; -goto block_140; +x_137 = x_94; +goto block_141; } else { -lean_object* x_141; -x_141 = lean_alloc_ctor(1, 2, 1); -lean_ctor_set(x_141, 0, x_21); -lean_ctor_set(x_141, 1, x_135); -x_136 = x_141; -goto block_140; +lean_object* x_142; +x_142 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_142, 0, x_21); +lean_ctor_set(x_142, 1, x_136); +x_137 = x_142; +goto block_141; } -block_140: +block_141: { -lean_object* x_137; -lean_ctor_set_uint8(x_136, sizeof(void*)*2, x_1); +lean_object* x_138; +lean_ctor_set_uint8(x_137, sizeof(void*)*2, x_1); if (x_99 == 0) { -lean_ctor_set(x_98, 0, x_136); -x_137 = x_98; -goto block_138; +lean_ctor_set(x_98, 0, x_137); +x_138 = x_98; +goto block_139; } else { -lean_object* x_139; -x_139 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_139, 0, x_136); -x_137 = x_139; -goto block_138; +lean_object* x_140; +x_140 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_140, 0, x_137); +x_138 = x_140; +goto block_139; } -block_138: +block_139: { -return x_137; +return x_138; } } } @@ -2009,7 +3110,7 @@ return x_137; } else { -lean_object* x_144; lean_object* x_145; uint8_t x_146; uint8_t x_151; +lean_object* x_145; lean_object* x_146; uint8_t x_147; uint8_t x_152; lean_del_object(x_94); lean_dec_ref(x_93); lean_dec_ref(x_92); @@ -2029,41 +3130,41 @@ lean_dec(x_5); lean_dec_ref(x_4); lean_dec(x_3); lean_dec_ref(x_2); -x_144 = lean_ctor_get(x_96, 0); -x_151 = !lean_is_exclusive(x_96); -if (x_151 == 0) +x_145 = lean_ctor_get(x_96, 0); +x_152 = !lean_is_exclusive(x_96); +if (x_152 == 0) { -x_145 = x_96; -x_146 = x_151; -goto block_150; +x_146 = x_96; +x_147 = x_152; +goto block_151; } else { -lean_inc(x_144); +lean_inc(x_145); lean_dec(x_96); -x_145 = lean_box(0); -x_146 = x_151; -goto block_150; +x_146 = lean_box(0); +x_147 = x_152; +goto block_151; } -block_150: +block_151: { -lean_object* x_147; -if (x_146 == 0) +lean_object* x_148; +if (x_147 == 0) { -x_147 = x_145; -goto block_148; +x_148 = x_146; +goto block_149; } else { -lean_object* x_149; -x_149 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_149, 0, x_144); -x_147 = x_149; -goto block_148; +lean_object* x_150; +x_150 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_150, 0, x_145); +x_148 = x_150; +goto block_149; } -block_148: +block_149: { -return x_147; +return x_148; } } } @@ -2184,191 +3285,190 @@ lean_dec(x_3); return x_13; } } -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16, lean_object* x_17) { _start: { -lean_object* x_18; -lean_inc_ref(x_4); -x_18 = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(x_4, x_14); -if (lean_obj_tag(x_18) == 0) +lean_object* x_19; +x_19 = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(x_7, x_15); +if (lean_obj_tag(x_19) == 0) { -lean_object* x_19; lean_object* x_20; uint8_t x_21; -x_19 = lean_ctor_get(x_18, 0); -lean_inc(x_19); -lean_dec_ref(x_18); -x_20 = l_Lean_Expr_cleanupAnnotations(x_19); -x_21 = l_Lean_Expr_isApp(x_20); -if (x_21 == 0) +lean_object* x_20; lean_object* x_21; uint8_t x_22; +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +lean_dec_ref(x_19); +x_21 = l_Lean_Expr_cleanupAnnotations(x_20); +x_22 = l_Lean_Expr_isApp(x_21); +if (x_22 == 0) { -lean_object* x_22; -lean_dec_ref(x_20); +lean_object* x_23; +lean_dec_ref(x_21); lean_dec_ref(x_6); lean_dec_ref(x_5); lean_dec_ref(x_4); lean_dec_ref(x_3); lean_dec_ref(x_2); -x_22 = lean_apply_10(x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, lean_box(0)); -return x_22; +x_23 = lean_apply_10(x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, lean_box(0)); +return x_23; } else { -lean_object* x_23; lean_object* x_24; uint8_t x_25; -x_23 = lean_ctor_get(x_20, 1); -lean_inc_ref(x_23); -x_24 = l_Lean_Expr_appFnCleanup___redArg(x_20); -x_25 = l_Lean_Expr_isApp(x_24); -if (x_25 == 0) +lean_object* x_24; lean_object* x_25; uint8_t x_26; +x_24 = lean_ctor_get(x_21, 1); +lean_inc_ref(x_24); +x_25 = l_Lean_Expr_appFnCleanup___redArg(x_21); +x_26 = l_Lean_Expr_isApp(x_25); +if (x_26 == 0) { -lean_object* x_26; +lean_object* x_27; +lean_dec_ref(x_25); lean_dec_ref(x_24); -lean_dec_ref(x_23); lean_dec_ref(x_6); lean_dec_ref(x_5); lean_dec_ref(x_4); lean_dec_ref(x_3); lean_dec_ref(x_2); -x_26 = lean_apply_10(x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, lean_box(0)); -return x_26; +x_27 = lean_apply_10(x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, lean_box(0)); +return x_27; } else { -lean_object* x_27; lean_object* x_28; uint8_t x_29; -x_27 = l_Lean_Expr_appFnCleanup___redArg(x_24); -x_28 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__2)); -x_29 = l_Lean_Expr_isConstOf(x_27, x_28); -if (x_29 == 0) +lean_object* x_28; lean_object* x_29; uint8_t x_30; +x_28 = l_Lean_Expr_appFnCleanup___redArg(x_25); +x_29 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__1)); +x_30 = l_Lean_Expr_isConstOf(x_28, x_29); +if (x_30 == 0) { -lean_object* x_30; uint8_t x_31; -x_30 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__4)); -x_31 = l_Lean_Expr_isConstOf(x_27, x_30); -lean_dec_ref(x_27); -if (x_31 == 0) +lean_object* x_31; uint8_t x_32; +x_31 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__3)); +x_32 = l_Lean_Expr_isConstOf(x_28, x_31); +lean_dec_ref(x_28); +if (x_32 == 0) { -lean_object* x_32; -lean_dec_ref(x_23); +lean_object* x_33; +lean_dec_ref(x_24); lean_dec_ref(x_6); lean_dec_ref(x_5); lean_dec_ref(x_4); lean_dec_ref(x_3); lean_dec_ref(x_2); -x_32 = lean_apply_10(x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, lean_box(0)); -return x_32; +x_33 = lean_apply_10(x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, lean_box(0)); +return x_33; } else { -lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; -lean_dec(x_16); -lean_dec_ref(x_15); -lean_dec(x_14); -lean_dec_ref(x_13); -lean_dec_ref(x_11); -lean_dec(x_10); -lean_dec_ref(x_9); -lean_dec(x_8); -lean_dec_ref(x_7); -x_33 = lean_unsigned_to_nat(1u); -x_34 = lean_mk_empty_array_with_capacity(x_33); -lean_inc_ref(x_23); -x_35 = lean_array_push(x_34, x_23); +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; +lean_dec(x_17); +lean_dec_ref(x_16); +lean_dec(x_15); +lean_dec_ref(x_14); +lean_dec_ref(x_12); +lean_dec(x_11); +lean_dec_ref(x_10); +lean_dec(x_9); +lean_dec_ref(x_8); +x_34 = lean_unsigned_to_nat(1u); +x_35 = lean_mk_empty_array_with_capacity(x_34); +lean_inc_ref(x_24); +x_36 = lean_array_push(x_35, x_24); lean_inc_ref(x_5); -x_36 = l_Lean_Expr_betaRev(x_5, x_35, x_29, x_29); -lean_dec_ref(x_35); -x_37 = l_Lean_Meta_Sym_shareCommonInc___redArg(x_36, x_12); -lean_dec(x_12); -if (lean_obj_tag(x_37) == 0) +x_37 = l_Lean_Expr_betaRev(x_5, x_36, x_30, x_30); +lean_dec_ref(x_36); +x_38 = l_Lean_Meta_Sym_shareCommonInc___redArg(x_37, x_13); +lean_dec(x_13); +if (lean_obj_tag(x_38) == 0) { -lean_object* x_38; lean_object* x_39; uint8_t x_40; uint8_t x_50; -x_38 = lean_ctor_get(x_37, 0); -x_50 = !lean_is_exclusive(x_37); -if (x_50 == 0) +lean_object* x_39; lean_object* x_40; uint8_t x_41; uint8_t x_51; +x_39 = lean_ctor_get(x_38, 0); +x_51 = !lean_is_exclusive(x_38); +if (x_51 == 0) { -x_39 = x_37; -x_40 = x_50; -goto block_49; +x_40 = x_38; +x_41 = x_51; +goto block_50; } else { -lean_inc(x_38); -lean_dec(x_37); -x_39 = lean_box(0); -x_40 = x_50; -goto block_49; +lean_inc(x_39); +lean_dec(x_38); +x_40 = lean_box(0); +x_41 = x_51; +goto block_50; } -block_49: +block_50: { -lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; -x_41 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__1)); -x_42 = l_Lean_Expr_constLevels_x21(x_1); -x_43 = l_Lean_mkConst(x_41, x_42); -x_44 = l_Lean_mkApp6(x_43, x_2, x_3, x_4, x_5, x_6, x_23); -x_45 = lean_alloc_ctor(1, 2, 1); -lean_ctor_set(x_45, 0, x_38); -lean_ctor_set(x_45, 1, x_44); -lean_ctor_set_uint8(x_45, sizeof(void*)*2, x_29); -if (x_40 == 0) +lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_42 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__1)); +x_43 = l_Lean_Expr_constLevels_x21(x_1); +x_44 = l_Lean_mkConst(x_42, x_43); +x_45 = l_Lean_mkApp6(x_44, x_2, x_3, x_4, x_5, x_6, x_24); +x_46 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_46, 0, x_39); +lean_ctor_set(x_46, 1, x_45); +lean_ctor_set_uint8(x_46, sizeof(void*)*2, x_30); +if (x_41 == 0) { -lean_ctor_set(x_39, 0, x_45); -x_46 = x_39; -goto block_47; +lean_ctor_set(x_40, 0, x_46); +x_47 = x_40; +goto block_48; } else { -lean_object* x_48; -x_48 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_48, 0, x_45); -x_46 = x_48; -goto block_47; +lean_object* x_49; +x_49 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_49, 0, x_46); +x_47 = x_49; +goto block_48; } -block_47: +block_48: { -return x_46; +return x_47; } } } else { -lean_object* x_51; lean_object* x_52; uint8_t x_53; uint8_t x_58; -lean_dec_ref(x_23); +lean_object* x_52; lean_object* x_53; uint8_t x_54; uint8_t x_59; +lean_dec_ref(x_24); lean_dec_ref(x_6); lean_dec_ref(x_5); lean_dec_ref(x_4); lean_dec_ref(x_3); lean_dec_ref(x_2); -x_51 = lean_ctor_get(x_37, 0); -x_58 = !lean_is_exclusive(x_37); -if (x_58 == 0) +x_52 = lean_ctor_get(x_38, 0); +x_59 = !lean_is_exclusive(x_38); +if (x_59 == 0) { -x_52 = x_37; -x_53 = x_58; -goto block_57; +x_53 = x_38; +x_54 = x_59; +goto block_58; } else { -lean_inc(x_51); -lean_dec(x_37); -x_52 = lean_box(0); -x_53 = x_58; -goto block_57; +lean_inc(x_52); +lean_dec(x_38); +x_53 = lean_box(0); +x_54 = x_59; +goto block_58; } -block_57: +block_58: { -lean_object* x_54; -if (x_53 == 0) +lean_object* x_55; +if (x_54 == 0) { -x_54 = x_52; -goto block_55; +x_55 = x_53; +goto block_56; } else { -lean_object* x_56; -x_56 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_56, 0, x_51); -x_54 = x_56; -goto block_55; +lean_object* x_57; +x_57 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_57, 0, x_52); +x_55 = x_57; +goto block_56; } -block_55: +block_56: { -return x_54; +return x_55; } } } @@ -2376,121 +3476,121 @@ return x_54; } else { -lean_object* x_59; lean_object* x_60; lean_object* x_61; uint8_t x_62; lean_object* x_63; lean_object* x_64; -lean_dec_ref(x_27); -lean_dec(x_16); -lean_dec_ref(x_15); -lean_dec(x_14); -lean_dec_ref(x_13); -lean_dec_ref(x_11); -lean_dec(x_10); -lean_dec_ref(x_9); -lean_dec(x_8); -lean_dec_ref(x_7); -x_59 = lean_unsigned_to_nat(1u); -x_60 = lean_mk_empty_array_with_capacity(x_59); -lean_inc_ref(x_23); -x_61 = lean_array_push(x_60, x_23); -x_62 = 0; +lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; lean_object* x_64; lean_object* x_65; +lean_dec_ref(x_28); +lean_dec(x_17); +lean_dec_ref(x_16); +lean_dec(x_15); +lean_dec_ref(x_14); +lean_dec_ref(x_12); +lean_dec(x_11); +lean_dec_ref(x_10); +lean_dec(x_9); +lean_dec_ref(x_8); +x_60 = lean_unsigned_to_nat(1u); +x_61 = lean_mk_empty_array_with_capacity(x_60); +lean_inc_ref(x_24); +x_62 = lean_array_push(x_61, x_24); +x_63 = 0; lean_inc_ref(x_6); -x_63 = l_Lean_Expr_betaRev(x_6, x_61, x_62, x_62); -lean_dec_ref(x_61); -x_64 = l_Lean_Meta_Sym_shareCommonInc___redArg(x_63, x_12); -lean_dec(x_12); -if (lean_obj_tag(x_64) == 0) +x_64 = l_Lean_Expr_betaRev(x_6, x_62, x_63, x_63); +lean_dec_ref(x_62); +x_65 = l_Lean_Meta_Sym_shareCommonInc___redArg(x_64, x_13); +lean_dec(x_13); +if (lean_obj_tag(x_65) == 0) { -lean_object* x_65; lean_object* x_66; uint8_t x_67; uint8_t x_77; -x_65 = lean_ctor_get(x_64, 0); -x_77 = !lean_is_exclusive(x_64); -if (x_77 == 0) +lean_object* x_66; lean_object* x_67; uint8_t x_68; uint8_t x_78; +x_66 = lean_ctor_get(x_65, 0); +x_78 = !lean_is_exclusive(x_65); +if (x_78 == 0) { -x_66 = x_64; -x_67 = x_77; -goto block_76; +x_67 = x_65; +x_68 = x_78; +goto block_77; } else { -lean_inc(x_65); -lean_dec(x_64); -x_66 = lean_box(0); -x_67 = x_77; -goto block_76; +lean_inc(x_66); +lean_dec(x_65); +x_67 = lean_box(0); +x_68 = x_78; +goto block_77; } -block_76: +block_77: { -lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; -x_68 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___closed__3)); -x_69 = l_Lean_Expr_constLevels_x21(x_1); -x_70 = l_Lean_mkConst(x_68, x_69); -x_71 = l_Lean_mkApp6(x_70, x_2, x_3, x_4, x_5, x_6, x_23); -x_72 = lean_alloc_ctor(1, 2, 1); -lean_ctor_set(x_72, 0, x_65); -lean_ctor_set(x_72, 1, x_71); -lean_ctor_set_uint8(x_72, sizeof(void*)*2, x_62); -if (x_67 == 0) +lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; +x_69 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___closed__3)); +x_70 = l_Lean_Expr_constLevels_x21(x_1); +x_71 = l_Lean_mkConst(x_69, x_70); +x_72 = l_Lean_mkApp6(x_71, x_2, x_3, x_4, x_5, x_6, x_24); +x_73 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_73, 0, x_66); +lean_ctor_set(x_73, 1, x_72); +lean_ctor_set_uint8(x_73, sizeof(void*)*2, x_63); +if (x_68 == 0) { -lean_ctor_set(x_66, 0, x_72); -x_73 = x_66; -goto block_74; +lean_ctor_set(x_67, 0, x_73); +x_74 = x_67; +goto block_75; } else { -lean_object* x_75; -x_75 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_75, 0, x_72); -x_73 = x_75; -goto block_74; +lean_object* x_76; +x_76 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_76, 0, x_73); +x_74 = x_76; +goto block_75; } -block_74: +block_75: { -return x_73; +return x_74; } } } else { -lean_object* x_78; lean_object* x_79; uint8_t x_80; uint8_t x_85; -lean_dec_ref(x_23); +lean_object* x_79; lean_object* x_80; uint8_t x_81; uint8_t x_86; +lean_dec_ref(x_24); lean_dec_ref(x_6); lean_dec_ref(x_5); lean_dec_ref(x_4); lean_dec_ref(x_3); lean_dec_ref(x_2); -x_78 = lean_ctor_get(x_64, 0); -x_85 = !lean_is_exclusive(x_64); -if (x_85 == 0) +x_79 = lean_ctor_get(x_65, 0); +x_86 = !lean_is_exclusive(x_65); +if (x_86 == 0) { -x_79 = x_64; -x_80 = x_85; -goto block_84; +x_80 = x_65; +x_81 = x_86; +goto block_85; } else { -lean_inc(x_78); -lean_dec(x_64); -x_79 = lean_box(0); -x_80 = x_85; -goto block_84; +lean_inc(x_79); +lean_dec(x_65); +x_80 = lean_box(0); +x_81 = x_86; +goto block_85; } -block_84: +block_85: { -lean_object* x_81; -if (x_80 == 0) +lean_object* x_82; +if (x_81 == 0) { -x_81 = x_79; -goto block_82; +x_82 = x_80; +goto block_83; } else { -lean_object* x_83; -x_83 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_83, 0, x_78); -x_81 = x_83; -goto block_82; +lean_object* x_84; +x_84 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_84, 0, x_79); +x_82 = x_84; +goto block_83; } -block_82: +block_83: { -return x_81; +return x_82; } } } @@ -2500,63 +3600,63 @@ return x_81; } else { -lean_object* x_86; lean_object* x_87; uint8_t x_88; uint8_t x_93; -lean_dec(x_16); -lean_dec_ref(x_15); -lean_dec(x_14); -lean_dec_ref(x_13); -lean_dec(x_12); -lean_dec_ref(x_11); -lean_dec(x_10); -lean_dec_ref(x_9); -lean_dec(x_8); -lean_dec_ref(x_7); +lean_object* x_87; lean_object* x_88; uint8_t x_89; uint8_t x_94; +lean_dec(x_17); +lean_dec_ref(x_16); +lean_dec(x_15); +lean_dec_ref(x_14); +lean_dec(x_13); +lean_dec_ref(x_12); +lean_dec(x_11); +lean_dec_ref(x_10); +lean_dec(x_9); +lean_dec_ref(x_8); lean_dec_ref(x_6); lean_dec_ref(x_5); lean_dec_ref(x_4); lean_dec_ref(x_3); lean_dec_ref(x_2); -x_86 = lean_ctor_get(x_18, 0); -x_93 = !lean_is_exclusive(x_18); -if (x_93 == 0) +x_87 = lean_ctor_get(x_19, 0); +x_94 = !lean_is_exclusive(x_19); +if (x_94 == 0) { -x_87 = x_18; -x_88 = x_93; -goto block_92; +x_88 = x_19; +x_89 = x_94; +goto block_93; } else { -lean_inc(x_86); -lean_dec(x_18); -x_87 = lean_box(0); -x_88 = x_93; -goto block_92; +lean_inc(x_87); +lean_dec(x_19); +x_88 = lean_box(0); +x_89 = x_94; +goto block_93; } -block_92: +block_93: { -lean_object* x_89; -if (x_88 == 0) +lean_object* x_90; +if (x_89 == 0) { -x_89 = x_87; -goto block_90; +x_90 = x_88; +goto block_91; } else { -lean_object* x_91; -x_91 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_91, 0, x_86); -x_89 = x_91; -goto block_90; +lean_object* x_92; +x_92 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_92, 0, x_87); +x_90 = x_92; +goto block_91; } -block_90: +block_91: { -return x_89; +return x_90; } } } } } -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable___boxed(lean_object** _args) { +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable___boxed(lean_object** _args) { lean_object* x_1 = _args[0]; lean_object* x_2 = _args[1]; lean_object* x_3 = _args[2]; @@ -2574,15 +3674,458 @@ lean_object* x_14 = _args[13]; lean_object* x_15 = _args[14]; lean_object* x_16 = _args[15]; lean_object* x_17 = _args[16]; +lean_object* x_18 = _args[17]; _start: { -lean_object* x_18; -x_18 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +lean_object* x_19; +x_19 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17); lean_dec_ref(x_1); -return x_18; +return x_19; } } -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidableWithFallback(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { +static lean_object* _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__3(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__2)); +x_3 = l_Lean_mkConst(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__8(void) { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__7)); +x_3 = l_Lean_mkConst(x_2, x_1); +return x_3; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16, lean_object* x_17, lean_object* x_18, lean_object* x_19) { +_start: +{ +lean_object* x_21; +x_21 = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(x_9, x_17); +if (lean_obj_tag(x_21) == 0) +{ +lean_object* x_22; lean_object* x_23; uint8_t x_24; +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +lean_dec_ref(x_21); +x_23 = l_Lean_Expr_cleanupAnnotations(x_22); +x_24 = l_Lean_Expr_isApp(x_23); +if (x_24 == 0) +{ +lean_object* x_25; +lean_dec_ref(x_23); +lean_dec_ref(x_8); +lean_dec_ref(x_7); +lean_dec_ref(x_6); +lean_dec_ref(x_5); +lean_dec_ref(x_4); +lean_dec_ref(x_3); +lean_dec_ref(x_2); +x_25 = lean_apply_10(x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19, lean_box(0)); +return x_25; +} +else +{ +lean_object* x_26; lean_object* x_27; uint8_t x_28; +x_26 = lean_ctor_get(x_23, 1); +lean_inc_ref(x_26); +x_27 = l_Lean_Expr_appFnCleanup___redArg(x_23); +x_28 = l_Lean_Expr_isApp(x_27); +if (x_28 == 0) +{ +lean_object* x_29; +lean_dec_ref(x_27); +lean_dec_ref(x_26); +lean_dec_ref(x_8); +lean_dec_ref(x_7); +lean_dec_ref(x_6); +lean_dec_ref(x_5); +lean_dec_ref(x_4); +lean_dec_ref(x_3); +lean_dec_ref(x_2); +x_29 = lean_apply_10(x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19, lean_box(0)); +return x_29; +} +else +{ +lean_object* x_30; lean_object* x_31; uint8_t x_32; +x_30 = l_Lean_Expr_appFnCleanup___redArg(x_27); +x_31 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__1)); +x_32 = l_Lean_Expr_isConstOf(x_30, x_31); +if (x_32 == 0) +{ +lean_object* x_33; uint8_t x_34; +x_33 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__3)); +x_34 = l_Lean_Expr_isConstOf(x_30, x_33); +lean_dec_ref(x_30); +if (x_34 == 0) +{ +lean_object* x_35; +lean_dec_ref(x_26); +lean_dec_ref(x_8); +lean_dec_ref(x_7); +lean_dec_ref(x_6); +lean_dec_ref(x_5); +lean_dec_ref(x_4); +lean_dec_ref(x_3); +lean_dec_ref(x_2); +x_35 = lean_apply_10(x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19, lean_box(0)); +return x_35; +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; +lean_dec(x_19); +lean_dec_ref(x_18); +lean_dec(x_17); +lean_dec_ref(x_16); +lean_dec_ref(x_14); +lean_dec(x_13); +lean_dec_ref(x_12); +lean_dec(x_11); +lean_dec_ref(x_10); +x_36 = lean_obj_once(&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__3, &l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__3_once, _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__3); +lean_inc_ref(x_26); +lean_inc_ref(x_8); +lean_inc_ref(x_7); +lean_inc_ref(x_3); +x_37 = l_Lean_mkApp4(x_36, x_3, x_7, x_8, x_26); +x_38 = lean_unsigned_to_nat(1u); +x_39 = lean_mk_empty_array_with_capacity(x_38); +x_40 = lean_array_push(x_39, x_37); +lean_inc_ref(x_5); +x_41 = l_Lean_Expr_betaRev(x_5, x_40, x_32, x_32); +lean_dec_ref(x_40); +x_42 = l_Lean_Meta_Sym_shareCommonInc___redArg(x_41, x_15); +lean_dec(x_15); +if (lean_obj_tag(x_42) == 0) +{ +lean_object* x_43; lean_object* x_44; uint8_t x_45; uint8_t x_55; +x_43 = lean_ctor_get(x_42, 0); +x_55 = !lean_is_exclusive(x_42); +if (x_55 == 0) +{ +x_44 = x_42; +x_45 = x_55; +goto block_54; +} +else +{ +lean_inc(x_43); +lean_dec(x_42); +x_44 = lean_box(0); +x_45 = x_55; +goto block_54; +} +block_54: +{ +lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_46 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__5)); +x_47 = l_Lean_Expr_constLevels_x21(x_1); +x_48 = l_Lean_mkConst(x_46, x_47); +x_49 = l_Lean_mkApp8(x_48, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_26); +x_50 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_50, 0, x_43); +lean_ctor_set(x_50, 1, x_49); +lean_ctor_set_uint8(x_50, sizeof(void*)*2, x_32); +if (x_45 == 0) +{ +lean_ctor_set(x_44, 0, x_50); +x_51 = x_44; +goto block_52; +} +else +{ +lean_object* x_53; +x_53 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_53, 0, x_50); +x_51 = x_53; +goto block_52; +} +block_52: +{ +return x_51; +} +} +} +else +{ +lean_object* x_56; lean_object* x_57; uint8_t x_58; uint8_t x_63; +lean_dec_ref(x_26); +lean_dec_ref(x_8); +lean_dec_ref(x_7); +lean_dec_ref(x_6); +lean_dec_ref(x_5); +lean_dec_ref(x_4); +lean_dec_ref(x_3); +lean_dec_ref(x_2); +x_56 = lean_ctor_get(x_42, 0); +x_63 = !lean_is_exclusive(x_42); +if (x_63 == 0) +{ +x_57 = x_42; +x_58 = x_63; +goto block_62; +} +else +{ +lean_inc(x_56); +lean_dec(x_42); +x_57 = lean_box(0); +x_58 = x_63; +goto block_62; +} +block_62: +{ +lean_object* x_59; +if (x_58 == 0) +{ +x_59 = x_57; +goto block_60; +} +else +{ +lean_object* x_61; +x_61 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_61, 0, x_56); +x_59 = x_61; +goto block_60; +} +block_60: +{ +return x_59; +} +} +} +} +} +else +{ +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; uint8_t x_69; lean_object* x_70; lean_object* x_71; +lean_dec_ref(x_30); +lean_dec(x_19); +lean_dec_ref(x_18); +lean_dec(x_17); +lean_dec_ref(x_16); +lean_dec_ref(x_14); +lean_dec(x_13); +lean_dec_ref(x_12); +lean_dec(x_11); +lean_dec_ref(x_10); +x_64 = lean_obj_once(&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__8, &l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__8_once, _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__8); +lean_inc_ref(x_26); +lean_inc_ref(x_8); +lean_inc_ref(x_7); +lean_inc_ref(x_3); +x_65 = l_Lean_mkApp4(x_64, x_3, x_7, x_8, x_26); +x_66 = lean_unsigned_to_nat(1u); +x_67 = lean_mk_empty_array_with_capacity(x_66); +x_68 = lean_array_push(x_67, x_65); +x_69 = 0; +lean_inc_ref(x_6); +x_70 = l_Lean_Expr_betaRev(x_6, x_68, x_69, x_69); +lean_dec_ref(x_68); +x_71 = l_Lean_Meta_Sym_shareCommonInc___redArg(x_70, x_15); +lean_dec(x_15); +if (lean_obj_tag(x_71) == 0) +{ +lean_object* x_72; lean_object* x_73; uint8_t x_74; uint8_t x_84; +x_72 = lean_ctor_get(x_71, 0); +x_84 = !lean_is_exclusive(x_71); +if (x_84 == 0) +{ +x_73 = x_71; +x_74 = x_84; +goto block_83; +} +else +{ +lean_inc(x_72); +lean_dec(x_71); +x_73 = lean_box(0); +x_74 = x_84; +goto block_83; +} +block_83: +{ +lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; +x_75 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__10)); +x_76 = l_Lean_Expr_constLevels_x21(x_1); +x_77 = l_Lean_mkConst(x_75, x_76); +x_78 = l_Lean_mkApp8(x_77, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_26); +x_79 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_79, 0, x_72); +lean_ctor_set(x_79, 1, x_78); +lean_ctor_set_uint8(x_79, sizeof(void*)*2, x_69); +if (x_74 == 0) +{ +lean_ctor_set(x_73, 0, x_79); +x_80 = x_73; +goto block_81; +} +else +{ +lean_object* x_82; +x_82 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_82, 0, x_79); +x_80 = x_82; +goto block_81; +} +block_81: +{ +return x_80; +} +} +} +else +{ +lean_object* x_85; lean_object* x_86; uint8_t x_87; uint8_t x_92; +lean_dec_ref(x_26); +lean_dec_ref(x_8); +lean_dec_ref(x_7); +lean_dec_ref(x_6); +lean_dec_ref(x_5); +lean_dec_ref(x_4); +lean_dec_ref(x_3); +lean_dec_ref(x_2); +x_85 = lean_ctor_get(x_71, 0); +x_92 = !lean_is_exclusive(x_71); +if (x_92 == 0) +{ +x_86 = x_71; +x_87 = x_92; +goto block_91; +} +else +{ +lean_inc(x_85); +lean_dec(x_71); +x_86 = lean_box(0); +x_87 = x_92; +goto block_91; +} +block_91: +{ +lean_object* x_88; +if (x_87 == 0) +{ +x_88 = x_86; +goto block_89; +} +else +{ +lean_object* x_90; +x_90 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_90, 0, x_85); +x_88 = x_90; +goto block_89; +} +block_89: +{ +return x_88; +} +} +} +} +} +} +} +else +{ +lean_object* x_93; lean_object* x_94; uint8_t x_95; uint8_t x_100; +lean_dec(x_19); +lean_dec_ref(x_18); +lean_dec(x_17); +lean_dec_ref(x_16); +lean_dec(x_15); +lean_dec_ref(x_14); +lean_dec(x_13); +lean_dec_ref(x_12); +lean_dec(x_11); +lean_dec_ref(x_10); +lean_dec_ref(x_8); +lean_dec_ref(x_7); +lean_dec_ref(x_6); +lean_dec_ref(x_5); +lean_dec_ref(x_4); +lean_dec_ref(x_3); +lean_dec_ref(x_2); +x_93 = lean_ctor_get(x_21, 0); +x_100 = !lean_is_exclusive(x_21); +if (x_100 == 0) +{ +x_94 = x_21; +x_95 = x_100; +goto block_99; +} +else +{ +lean_inc(x_93); +lean_dec(x_21); +x_94 = lean_box(0); +x_95 = x_100; +goto block_99; +} +block_99: +{ +lean_object* x_96; +if (x_95 == 0) +{ +x_96 = x_94; +goto block_97; +} +else +{ +lean_object* x_98; +x_98 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_98, 0, x_93); +x_96 = x_98; +goto block_97; +} +block_97: +{ +return x_96; +} +} +} +} +} +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___boxed(lean_object** _args) { +lean_object* x_1 = _args[0]; +lean_object* x_2 = _args[1]; +lean_object* x_3 = _args[2]; +lean_object* x_4 = _args[3]; +lean_object* x_5 = _args[4]; +lean_object* x_6 = _args[5]; +lean_object* x_7 = _args[6]; +lean_object* x_8 = _args[7]; +lean_object* x_9 = _args[8]; +lean_object* x_10 = _args[9]; +lean_object* x_11 = _args[10]; +lean_object* x_12 = _args[11]; +lean_object* x_13 = _args[12]; +lean_object* x_14 = _args[13]; +lean_object* x_15 = _args[14]; +lean_object* x_16 = _args[15]; +lean_object* x_17 = _args[16]; +lean_object* x_18 = _args[17]; +lean_object* x_19 = _args[18]; +lean_object* x_20 = _args[19]; +_start: +{ +lean_object* x_21; +x_21 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19); +lean_dec_ref(x_1); +return x_21; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDIteDecidable(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { _start: { lean_object* x_18; @@ -2607,17 +4150,17 @@ if (lean_obj_tag(x_19) == 0) { lean_object* x_20; lean_dec_ref(x_19); -x_20 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +lean_inc_ref(x_4); +x_20 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable(x_1, x_2, x_3, x_4, x_5, x_6, x_4, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); return x_20; } else { lean_object* x_21; lean_object* x_22; -lean_dec_ref(x_4); x_21 = lean_ctor_get(x_19, 0); lean_inc_ref(x_21); lean_dec_ref(x_19); -x_22 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidable(x_1, x_2, x_3, x_21, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +x_22 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidable(x_1, x_2, x_3, x_4, x_5, x_6, x_21, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); return x_22; } } @@ -2642,7 +4185,7 @@ return x_18; } } } -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidableWithFallback___boxed(lean_object** _args) { +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDIteDecidable___boxed(lean_object** _args) { lean_object* x_1 = _args[0]; lean_object* x_2 = _args[1]; lean_object* x_3 = _args[2]; @@ -2663,12 +4206,104 @@ lean_object* x_17 = _args[16]; _start: { lean_object* x_18; -x_18 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidableWithFallback(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +x_18 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDIteDecidable(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); lean_dec_ref(x_1); return x_18; } } -static lean_object* _init_l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__5(void) { +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDIteDecidableCongr(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16, lean_object* x_17, lean_object* x_18, lean_object* x_19) { +_start: +{ +lean_object* x_21; +lean_inc(x_19); +lean_inc_ref(x_18); +lean_inc(x_17); +lean_inc_ref(x_16); +lean_inc(x_15); +lean_inc_ref(x_14); +lean_inc(x_13); +lean_inc_ref(x_12); +lean_inc(x_11); +lean_inc_ref(x_9); +x_21 = lean_sym_simp(x_9, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19); +if (lean_obj_tag(x_21) == 0) +{ +lean_object* x_22; +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +lean_dec_ref(x_21); +if (lean_obj_tag(x_22) == 0) +{ +lean_object* x_23; +lean_dec_ref(x_22); +x_23 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19); +return x_23; +} +else +{ +lean_object* x_24; lean_object* x_25; +lean_dec_ref(x_9); +x_24 = lean_ctor_get(x_22, 0); +lean_inc_ref(x_24); +lean_dec_ref(x_22); +x_25 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_24, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19); +return x_25; +} +} +else +{ +lean_dec(x_19); +lean_dec_ref(x_18); +lean_dec(x_17); +lean_dec_ref(x_16); +lean_dec(x_15); +lean_dec_ref(x_14); +lean_dec(x_13); +lean_dec_ref(x_12); +lean_dec(x_11); +lean_dec_ref(x_10); +lean_dec_ref(x_9); +lean_dec_ref(x_8); +lean_dec_ref(x_7); +lean_dec_ref(x_6); +lean_dec_ref(x_5); +lean_dec_ref(x_4); +lean_dec_ref(x_3); +lean_dec_ref(x_2); +return x_21; +} +} +} +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDIteDecidableCongr___boxed(lean_object** _args) { +lean_object* x_1 = _args[0]; +lean_object* x_2 = _args[1]; +lean_object* x_3 = _args[2]; +lean_object* x_4 = _args[3]; +lean_object* x_5 = _args[4]; +lean_object* x_6 = _args[5]; +lean_object* x_7 = _args[6]; +lean_object* x_8 = _args[7]; +lean_object* x_9 = _args[8]; +lean_object* x_10 = _args[9]; +lean_object* x_11 = _args[10]; +lean_object* x_12 = _args[11]; +lean_object* x_13 = _args[12]; +lean_object* x_14 = _args[13]; +lean_object* x_15 = _args[14]; +lean_object* x_16 = _args[15]; +lean_object* x_17 = _args[16]; +lean_object* x_18 = _args[17]; +lean_object* x_19 = _args[18]; +lean_object* x_20 = _args[19]; +_start: +{ +lean_object* x_21; +x_21 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDIteDecidableCongr(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19); +lean_dec_ref(x_1); +return x_21; +} +} +static lean_object* _init_l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__2(void) { _start: { lean_object* x_1; lean_object* x_2; @@ -2690,10 +4325,10 @@ lean_inc(x_23); lean_dec_ref(x_22); x_24 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__1)); x_25 = 0; -x_26 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__4)); +x_26 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__2)); lean_inc(x_2); x_27 = l_Lean_mkConst(x_26, x_2); -x_28 = lean_obj_once(&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__5, &l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__5_once, _init_l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__5); +x_28 = lean_obj_once(&l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__2, &l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__2_once, _init_l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__2); lean_inc(x_23); lean_inc_ref(x_4); lean_inc_ref(x_3); @@ -2715,7 +4350,7 @@ lean_inc(x_36); lean_dec_ref(x_35); lean_inc_ref(x_4); x_37 = l_Lean_mkNot(x_4); -x_38 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__7)); +x_38 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDIteDecidableCongr___closed__7)); x_39 = l_Lean_mkConst(x_38, x_2); lean_inc(x_23); lean_inc_ref(x_4); @@ -2756,7 +4391,7 @@ goto block_57; block_57: { lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; -x_50 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__9)); +x_50 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___closed__4)); x_51 = l_Lean_Expr_replaceFn(x_10, x_50); x_52 = l_Lean_mkApp3(x_51, x_4, x_9, x_23); x_53 = lean_alloc_ctor(1, 2, 1); @@ -3304,7 +4939,7 @@ lean_object* x_45; lean_object* x_46; lean_ctor_set_uint8(x_44, 0, x_33); x_45 = lean_alloc_closure((void*)(l_Lean_Meta_Sym_Simp_simpIteCbv___lam__0___boxed), 11, 1); lean_closure_set(x_45, 0, x_44); -x_46 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidableWithFallback(x_31, x_30, x_27, x_24, x_21, x_18, x_45, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +x_46 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDIteDecidable(x_31, x_30, x_27, x_24, x_21, x_18, x_45, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); lean_dec_ref(x_31); return x_46; } @@ -3669,15 +5304,15 @@ return x_111; } else { -lean_object* x_118; lean_object* x_119; lean_object* x_120; uint8_t x_121; uint8_t x_232; +lean_object* x_118; lean_object* x_119; lean_object* x_120; uint8_t x_121; uint8_t x_233; x_118 = lean_ctor_get(x_35, 0); x_119 = lean_ctor_get(x_35, 1); -x_232 = !lean_is_exclusive(x_35); -if (x_232 == 0) +x_233 = !lean_is_exclusive(x_35); +if (x_233 == 0) { x_120 = x_35; -x_121 = x_232; -goto block_231; +x_121 = x_233; +goto block_232; } else { @@ -3685,10 +5320,10 @@ lean_inc(x_119); lean_inc(x_118); lean_dec(x_35); x_120 = lean_box(0); -x_121 = x_232; -goto block_231; +x_121 = x_233; +goto block_232; } -block_231: +block_232: { lean_object* x_122; x_122 = l_Lean_Meta_Sym_isTrueExpr___redArg(x_118, x_6); @@ -3712,7 +5347,7 @@ lean_dec_ref(x_125); x_127 = lean_unbox(x_126); if (x_127 == 0) { -lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; +lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_dec(x_123); lean_del_object(x_120); x_128 = lean_box(0); @@ -3725,9 +5360,12 @@ x_130 = l_Lean_mkApp4(x_129, x_27, x_118, x_24, x_119); x_131 = lean_unsigned_to_nat(4u); x_132 = l_Lean_Expr_getBoundedAppFn(x_131, x_2); x_133 = lean_box(x_33); +lean_inc_ref(x_130); lean_inc_ref(x_18); lean_inc_ref(x_21); +lean_inc_ref(x_118); lean_inc_ref(x_27); +lean_inc_ref(x_119); x_134 = lean_alloc_closure((void*)(l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__1___boxed), 21, 11); lean_closure_set(x_134, 0, x_119); lean_closure_set(x_134, 1, x_128); @@ -3740,13 +5378,30 @@ lean_closure_set(x_134, 7, x_132); lean_closure_set(x_134, 8, x_130); lean_closure_set(x_134, 9, x_2); lean_closure_set(x_134, 10, x_133); -x_135 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDIteDecidableWithFallback(x_31, x_30, x_27, x_24, x_21, x_18, x_134, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +lean_inc_ref(x_18); +lean_inc_ref(x_21); +lean_inc_ref(x_24); +lean_inc_ref(x_27); +lean_inc_ref(x_30); +lean_inc_ref(x_31); +x_135 = lean_alloc_closure((void*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDIteDecidableCongr___boxed), 20, 10); +lean_closure_set(x_135, 0, x_31); +lean_closure_set(x_135, 1, x_30); +lean_closure_set(x_135, 2, x_27); +lean_closure_set(x_135, 3, x_24); +lean_closure_set(x_135, 4, x_21); +lean_closure_set(x_135, 5, x_18); +lean_closure_set(x_135, 6, x_118); +lean_closure_set(x_135, 7, x_119); +lean_closure_set(x_135, 8, x_130); +lean_closure_set(x_135, 9, x_134); +x_136 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDIteDecidable(x_31, x_30, x_27, x_24, x_21, x_18, x_135, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); lean_dec_ref(x_31); -return x_135; +return x_136; } else { -lean_object* x_136; lean_object* x_137; +lean_object* x_137; lean_object* x_138; lean_dec(x_126); lean_dec_ref(x_118); lean_dec_ref(x_31); @@ -3762,181 +5417,181 @@ lean_dec(x_5); lean_dec_ref(x_4); lean_dec(x_3); lean_inc_ref(x_119); -x_136 = l_Lean_Meta_mkOfEqFalseCore(x_27, x_119); -x_137 = l_Lean_Meta_Sym_shareCommon___redArg(x_136, x_7); -if (lean_obj_tag(x_137) == 0) +x_137 = l_Lean_Meta_mkOfEqFalseCore(x_27, x_119); +x_138 = l_Lean_Meta_Sym_shareCommon___redArg(x_137, x_7); +if (lean_obj_tag(x_138) == 0) { -lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; uint8_t x_142; uint8_t x_143; lean_object* x_144; lean_object* x_145; -x_138 = lean_ctor_get(x_137, 0); -lean_inc(x_138); -lean_dec_ref(x_137); -x_139 = lean_unsigned_to_nat(1u); -x_140 = lean_mk_empty_array_with_capacity(x_139); -x_141 = lean_array_push(x_140, x_138); -x_142 = lean_unbox(x_123); +lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; uint8_t x_143; uint8_t x_144; lean_object* x_145; lean_object* x_146; +x_139 = lean_ctor_get(x_138, 0); +lean_inc(x_139); +lean_dec_ref(x_138); +x_140 = lean_unsigned_to_nat(1u); +x_141 = lean_mk_empty_array_with_capacity(x_140); +x_142 = lean_array_push(x_141, x_139); x_143 = lean_unbox(x_123); -x_144 = l_Lean_Expr_betaRev(x_18, x_141, x_142, x_143); -lean_dec_ref(x_141); -x_145 = l_Lean_Meta_Sym_shareCommonInc___redArg(x_144, x_7); +x_144 = lean_unbox(x_123); +x_145 = l_Lean_Expr_betaRev(x_18, x_142, x_143, x_144); +lean_dec_ref(x_142); +x_146 = l_Lean_Meta_Sym_shareCommonInc___redArg(x_145, x_7); lean_dec(x_7); -if (lean_obj_tag(x_145) == 0) +if (lean_obj_tag(x_146) == 0) { -lean_object* x_146; lean_object* x_147; uint8_t x_148; uint8_t x_160; -x_146 = lean_ctor_get(x_145, 0); -x_160 = !lean_is_exclusive(x_145); -if (x_160 == 0) +lean_object* x_147; lean_object* x_148; uint8_t x_149; uint8_t x_161; +x_147 = lean_ctor_get(x_146, 0); +x_161 = !lean_is_exclusive(x_146); +if (x_161 == 0) { -x_147 = x_145; -x_148 = x_160; -goto block_159; +x_148 = x_146; +x_149 = x_161; +goto block_160; } else { -lean_inc(x_146); -lean_dec(x_145); -x_147 = lean_box(0); -x_148 = x_160; -goto block_159; +lean_inc(x_147); +lean_dec(x_146); +x_148 = lean_box(0); +x_149 = x_161; +goto block_160; } -block_159: +block_160: { -lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; -x_149 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__14)); -x_150 = l_Lean_Expr_replaceFn(x_2, x_149); -x_151 = l_Lean_Expr_app___override(x_150, x_119); +lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; +x_150 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__14)); +x_151 = l_Lean_Expr_replaceFn(x_2, x_150); +x_152 = l_Lean_Expr_app___override(x_151, x_119); if (x_121 == 0) { -lean_ctor_set(x_120, 1, x_151); -lean_ctor_set(x_120, 0, x_146); -x_152 = x_120; -goto block_157; +lean_ctor_set(x_120, 1, x_152); +lean_ctor_set(x_120, 0, x_147); +x_153 = x_120; +goto block_158; } else { -lean_object* x_158; -x_158 = lean_alloc_ctor(1, 2, 1); -lean_ctor_set(x_158, 0, x_146); -lean_ctor_set(x_158, 1, x_151); -x_152 = x_158; -goto block_157; +lean_object* x_159; +x_159 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_159, 0, x_147); +lean_ctor_set(x_159, 1, x_152); +x_153 = x_159; +goto block_158; } -block_157: +block_158: { -uint8_t x_153; lean_object* x_154; -x_153 = lean_unbox(x_123); +uint8_t x_154; lean_object* x_155; +x_154 = lean_unbox(x_123); lean_dec(x_123); -lean_ctor_set_uint8(x_152, sizeof(void*)*2, x_153); -if (x_148 == 0) +lean_ctor_set_uint8(x_153, sizeof(void*)*2, x_154); +if (x_149 == 0) { -lean_ctor_set(x_147, 0, x_152); -x_154 = x_147; -goto block_155; +lean_ctor_set(x_148, 0, x_153); +x_155 = x_148; +goto block_156; } else { -lean_object* x_156; -x_156 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_156, 0, x_152); -x_154 = x_156; -goto block_155; +lean_object* x_157; +x_157 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_157, 0, x_153); +x_155 = x_157; +goto block_156; } -block_155: +block_156: { -return x_154; +return x_155; } } } } else { -lean_object* x_161; lean_object* x_162; uint8_t x_163; uint8_t x_168; +lean_object* x_162; lean_object* x_163; uint8_t x_164; uint8_t x_169; lean_dec(x_123); lean_del_object(x_120); lean_dec_ref(x_119); lean_dec_ref(x_2); -x_161 = lean_ctor_get(x_145, 0); -x_168 = !lean_is_exclusive(x_145); -if (x_168 == 0) +x_162 = lean_ctor_get(x_146, 0); +x_169 = !lean_is_exclusive(x_146); +if (x_169 == 0) { -x_162 = x_145; -x_163 = x_168; -goto block_167; +x_163 = x_146; +x_164 = x_169; +goto block_168; } else { -lean_inc(x_161); -lean_dec(x_145); -x_162 = lean_box(0); -x_163 = x_168; -goto block_167; +lean_inc(x_162); +lean_dec(x_146); +x_163 = lean_box(0); +x_164 = x_169; +goto block_168; } -block_167: +block_168: { -lean_object* x_164; -if (x_163 == 0) +lean_object* x_165; +if (x_164 == 0) { -x_164 = x_162; -goto block_165; +x_165 = x_163; +goto block_166; } else { -lean_object* x_166; -x_166 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_166, 0, x_161); -x_164 = x_166; -goto block_165; +lean_object* x_167; +x_167 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_167, 0, x_162); +x_165 = x_167; +goto block_166; } -block_165: +block_166: { -return x_164; +return x_165; } } } } else { -lean_object* x_169; lean_object* x_170; uint8_t x_171; uint8_t x_176; +lean_object* x_170; lean_object* x_171; uint8_t x_172; uint8_t x_177; lean_dec(x_123); lean_del_object(x_120); lean_dec_ref(x_119); lean_dec_ref(x_18); lean_dec(x_7); lean_dec_ref(x_2); -x_169 = lean_ctor_get(x_137, 0); -x_176 = !lean_is_exclusive(x_137); -if (x_176 == 0) +x_170 = lean_ctor_get(x_138, 0); +x_177 = !lean_is_exclusive(x_138); +if (x_177 == 0) { -x_170 = x_137; -x_171 = x_176; -goto block_175; +x_171 = x_138; +x_172 = x_177; +goto block_176; } else { -lean_inc(x_169); -lean_dec(x_137); -x_170 = lean_box(0); -x_171 = x_176; -goto block_175; +lean_inc(x_170); +lean_dec(x_138); +x_171 = lean_box(0); +x_172 = x_177; +goto block_176; } -block_175: +block_176: { -lean_object* x_172; -if (x_171 == 0) +lean_object* x_173; +if (x_172 == 0) { -x_172 = x_170; -goto block_173; +x_173 = x_171; +goto block_174; } else { -lean_object* x_174; -x_174 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_174, 0, x_169); -x_172 = x_174; -goto block_173; +lean_object* x_175; +x_175 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_175, 0, x_170); +x_173 = x_175; +goto block_174; } -block_173: +block_174: { -return x_172; +return x_173; } } } @@ -3944,7 +5599,7 @@ return x_172; } else { -lean_object* x_177; lean_object* x_178; uint8_t x_179; uint8_t x_184; +lean_object* x_178; lean_object* x_179; uint8_t x_180; uint8_t x_185; lean_dec(x_123); lean_del_object(x_120); lean_dec_ref(x_119); @@ -3965,48 +5620,48 @@ lean_dec(x_5); lean_dec_ref(x_4); lean_dec(x_3); lean_dec_ref(x_2); -x_177 = lean_ctor_get(x_125, 0); -x_184 = !lean_is_exclusive(x_125); -if (x_184 == 0) +x_178 = lean_ctor_get(x_125, 0); +x_185 = !lean_is_exclusive(x_125); +if (x_185 == 0) { -x_178 = x_125; -x_179 = x_184; -goto block_183; +x_179 = x_125; +x_180 = x_185; +goto block_184; } else { -lean_inc(x_177); +lean_inc(x_178); lean_dec(x_125); -x_178 = lean_box(0); -x_179 = x_184; -goto block_183; +x_179 = lean_box(0); +x_180 = x_185; +goto block_184; } -block_183: +block_184: { -lean_object* x_180; -if (x_179 == 0) +lean_object* x_181; +if (x_180 == 0) { -x_180 = x_178; -goto block_181; +x_181 = x_179; +goto block_182; } else { -lean_object* x_182; -x_182 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_182, 0, x_177); -x_180 = x_182; -goto block_181; +lean_object* x_183; +x_183 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_183, 0, x_178); +x_181 = x_183; +goto block_182; } -block_181: +block_182: { -return x_180; +return x_181; } } } } else { -lean_object* x_185; lean_object* x_186; +lean_object* x_186; lean_object* x_187; lean_dec(x_123); lean_dec_ref(x_118); lean_dec_ref(x_31); @@ -4022,175 +5677,175 @@ lean_dec(x_5); lean_dec_ref(x_4); lean_dec(x_3); lean_inc_ref(x_119); -x_185 = l_Lean_Meta_mkOfEqTrueCore(x_27, x_119); -x_186 = l_Lean_Meta_Sym_shareCommon___redArg(x_185, x_7); -if (lean_obj_tag(x_186) == 0) +x_186 = l_Lean_Meta_mkOfEqTrueCore(x_27, x_119); +x_187 = l_Lean_Meta_Sym_shareCommon___redArg(x_186, x_7); +if (lean_obj_tag(x_187) == 0) { -lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; lean_object* x_191; lean_object* x_192; -x_187 = lean_ctor_get(x_186, 0); -lean_inc(x_187); -lean_dec_ref(x_186); -x_188 = lean_unsigned_to_nat(1u); -x_189 = lean_mk_empty_array_with_capacity(x_188); -x_190 = lean_array_push(x_189, x_187); -x_191 = l_Lean_Expr_betaRev(x_21, x_190, x_1, x_1); -lean_dec_ref(x_190); -x_192 = l_Lean_Meta_Sym_shareCommonInc___redArg(x_191, x_7); +lean_object* x_188; lean_object* x_189; lean_object* x_190; lean_object* x_191; lean_object* x_192; lean_object* x_193; +x_188 = lean_ctor_get(x_187, 0); +lean_inc(x_188); +lean_dec_ref(x_187); +x_189 = lean_unsigned_to_nat(1u); +x_190 = lean_mk_empty_array_with_capacity(x_189); +x_191 = lean_array_push(x_190, x_188); +x_192 = l_Lean_Expr_betaRev(x_21, x_191, x_1, x_1); +lean_dec_ref(x_191); +x_193 = l_Lean_Meta_Sym_shareCommonInc___redArg(x_192, x_7); lean_dec(x_7); -if (lean_obj_tag(x_192) == 0) +if (lean_obj_tag(x_193) == 0) { -lean_object* x_193; lean_object* x_194; uint8_t x_195; uint8_t x_206; -x_193 = lean_ctor_get(x_192, 0); -x_206 = !lean_is_exclusive(x_192); -if (x_206 == 0) +lean_object* x_194; lean_object* x_195; uint8_t x_196; uint8_t x_207; +x_194 = lean_ctor_get(x_193, 0); +x_207 = !lean_is_exclusive(x_193); +if (x_207 == 0) { -x_194 = x_192; -x_195 = x_206; -goto block_205; +x_195 = x_193; +x_196 = x_207; +goto block_206; } else { -lean_inc(x_193); -lean_dec(x_192); -x_194 = lean_box(0); -x_195 = x_206; -goto block_205; +lean_inc(x_194); +lean_dec(x_193); +x_195 = lean_box(0); +x_196 = x_207; +goto block_206; } -block_205: +block_206: { -lean_object* x_196; lean_object* x_197; lean_object* x_198; lean_object* x_199; -x_196 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__16)); -x_197 = l_Lean_Expr_replaceFn(x_2, x_196); -x_198 = l_Lean_Expr_app___override(x_197, x_119); +lean_object* x_197; lean_object* x_198; lean_object* x_199; lean_object* x_200; +x_197 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDIteCbv___lam__0___closed__16)); +x_198 = l_Lean_Expr_replaceFn(x_2, x_197); +x_199 = l_Lean_Expr_app___override(x_198, x_119); if (x_121 == 0) { -lean_ctor_set(x_120, 1, x_198); -lean_ctor_set(x_120, 0, x_193); -x_199 = x_120; -goto block_203; +lean_ctor_set(x_120, 1, x_199); +lean_ctor_set(x_120, 0, x_194); +x_200 = x_120; +goto block_204; } else { -lean_object* x_204; -x_204 = lean_alloc_ctor(1, 2, 1); -lean_ctor_set(x_204, 0, x_193); -lean_ctor_set(x_204, 1, x_198); -x_199 = x_204; -goto block_203; +lean_object* x_205; +x_205 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_205, 0, x_194); +lean_ctor_set(x_205, 1, x_199); +x_200 = x_205; +goto block_204; } -block_203: +block_204: { -lean_object* x_200; -lean_ctor_set_uint8(x_199, sizeof(void*)*2, x_1); -if (x_195 == 0) +lean_object* x_201; +lean_ctor_set_uint8(x_200, sizeof(void*)*2, x_1); +if (x_196 == 0) { -lean_ctor_set(x_194, 0, x_199); -x_200 = x_194; -goto block_201; +lean_ctor_set(x_195, 0, x_200); +x_201 = x_195; +goto block_202; } else { -lean_object* x_202; -x_202 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_202, 0, x_199); -x_200 = x_202; -goto block_201; +lean_object* x_203; +x_203 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_203, 0, x_200); +x_201 = x_203; +goto block_202; } -block_201: +block_202: { -return x_200; +return x_201; } } } } else { -lean_object* x_207; lean_object* x_208; uint8_t x_209; uint8_t x_214; +lean_object* x_208; lean_object* x_209; uint8_t x_210; uint8_t x_215; lean_del_object(x_120); lean_dec_ref(x_119); lean_dec_ref(x_2); -x_207 = lean_ctor_get(x_192, 0); -x_214 = !lean_is_exclusive(x_192); -if (x_214 == 0) +x_208 = lean_ctor_get(x_193, 0); +x_215 = !lean_is_exclusive(x_193); +if (x_215 == 0) { -x_208 = x_192; -x_209 = x_214; -goto block_213; +x_209 = x_193; +x_210 = x_215; +goto block_214; } else { -lean_inc(x_207); -lean_dec(x_192); -x_208 = lean_box(0); -x_209 = x_214; -goto block_213; +lean_inc(x_208); +lean_dec(x_193); +x_209 = lean_box(0); +x_210 = x_215; +goto block_214; } -block_213: +block_214: { -lean_object* x_210; -if (x_209 == 0) +lean_object* x_211; +if (x_210 == 0) { -x_210 = x_208; -goto block_211; +x_211 = x_209; +goto block_212; } else { -lean_object* x_212; -x_212 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_212, 0, x_207); -x_210 = x_212; -goto block_211; +lean_object* x_213; +x_213 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_213, 0, x_208); +x_211 = x_213; +goto block_212; } -block_211: +block_212: { -return x_210; +return x_211; } } } } else { -lean_object* x_215; lean_object* x_216; uint8_t x_217; uint8_t x_222; +lean_object* x_216; lean_object* x_217; uint8_t x_218; uint8_t x_223; lean_del_object(x_120); lean_dec_ref(x_119); lean_dec_ref(x_21); lean_dec(x_7); lean_dec_ref(x_2); -x_215 = lean_ctor_get(x_186, 0); -x_222 = !lean_is_exclusive(x_186); -if (x_222 == 0) +x_216 = lean_ctor_get(x_187, 0); +x_223 = !lean_is_exclusive(x_187); +if (x_223 == 0) { -x_216 = x_186; -x_217 = x_222; -goto block_221; +x_217 = x_187; +x_218 = x_223; +goto block_222; } else { -lean_inc(x_215); -lean_dec(x_186); -x_216 = lean_box(0); -x_217 = x_222; -goto block_221; +lean_inc(x_216); +lean_dec(x_187); +x_217 = lean_box(0); +x_218 = x_223; +goto block_222; } -block_221: +block_222: { -lean_object* x_218; -if (x_217 == 0) +lean_object* x_219; +if (x_218 == 0) { -x_218 = x_216; -goto block_219; +x_219 = x_217; +goto block_220; } else { -lean_object* x_220; -x_220 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_220, 0, x_215); -x_218 = x_220; -goto block_219; +lean_object* x_221; +x_221 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_221, 0, x_216); +x_219 = x_221; +goto block_220; } -block_219: +block_220: { -return x_218; +return x_219; } } } @@ -4198,7 +5853,7 @@ return x_218; } else { -lean_object* x_223; lean_object* x_224; uint8_t x_225; uint8_t x_230; +lean_object* x_224; lean_object* x_225; uint8_t x_226; uint8_t x_231; lean_del_object(x_120); lean_dec_ref(x_119); lean_dec_ref(x_118); @@ -4218,41 +5873,41 @@ lean_dec(x_5); lean_dec_ref(x_4); lean_dec(x_3); lean_dec_ref(x_2); -x_223 = lean_ctor_get(x_122, 0); -x_230 = !lean_is_exclusive(x_122); -if (x_230 == 0) +x_224 = lean_ctor_get(x_122, 0); +x_231 = !lean_is_exclusive(x_122); +if (x_231 == 0) { -x_224 = x_122; -x_225 = x_230; -goto block_229; +x_225 = x_122; +x_226 = x_231; +goto block_230; } else { -lean_inc(x_223); +lean_inc(x_224); lean_dec(x_122); -x_224 = lean_box(0); -x_225 = x_230; -goto block_229; +x_225 = lean_box(0); +x_226 = x_231; +goto block_230; } -block_229: +block_230: { -lean_object* x_226; -if (x_225 == 0) +lean_object* x_227; +if (x_226 == 0) { -x_226 = x_224; -goto block_227; +x_227 = x_225; +goto block_228; } else { -lean_object* x_228; -x_228 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_228, 0, x_223); -x_226 = x_228; -goto block_227; +lean_object* x_229; +x_229 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_229, 0, x_224); +x_227 = x_229; +goto block_228; } -block_227: +block_228: { -return x_226; +return x_227; } } } @@ -5994,391 +7649,311 @@ x_12 = l_Lean_Meta_Sym_Simp_simpAnd(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, return x_12; } } -static lean_object* _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__3(void) { +static lean_object* _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__2(void) { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__2)); +x_2 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__1)); x_3 = l_Lean_mkConst(x_2, x_1); return x_3; } } -static lean_object* _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__6(void) { +static lean_object* _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__5(void) { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__5)); +x_2 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__4)); x_3 = l_Lean_mkConst(x_2, x_1); return x_3; } } -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13) { _start: { -lean_object* x_6; -lean_inc_ref(x_2); -x_6 = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(x_2, x_4); -if (lean_obj_tag(x_6) == 0) -{ -lean_object* x_7; lean_object* x_8; uint8_t x_9; uint8_t x_67; -x_7 = lean_ctor_get(x_6, 0); -x_67 = !lean_is_exclusive(x_6); -if (x_67 == 0) -{ -x_8 = x_6; -x_9 = x_67; -goto block_66; -} -else -{ -lean_inc(x_7); -lean_dec(x_6); -x_8 = lean_box(0); -x_9 = x_67; -goto block_66; -} -block_66: -{ -lean_object* x_15; uint8_t x_16; -x_15 = l_Lean_Expr_cleanupAnnotations(x_7); -x_16 = l_Lean_Expr_isApp(x_15); -if (x_16 == 0) +lean_object* x_15; +x_15 = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(x_3, x_11); +if (lean_obj_tag(x_15) == 0) { +lean_object* x_16; lean_object* x_17; uint8_t x_18; +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); lean_dec_ref(x_15); -lean_dec_ref(x_2); -lean_dec_ref(x_1); -goto block_14; -} -else +x_17 = l_Lean_Expr_cleanupAnnotations(x_16); +x_18 = l_Lean_Expr_isApp(x_17); +if (x_18 == 0) { -lean_object* x_17; lean_object* x_18; uint8_t x_19; -x_17 = lean_ctor_get(x_15, 1); -lean_inc_ref(x_17); -x_18 = l_Lean_Expr_appFnCleanup___redArg(x_15); -x_19 = l_Lean_Expr_isApp(x_18); -if (x_19 == 0) -{ -lean_dec_ref(x_18); +lean_object* x_19; lean_dec_ref(x_17); lean_dec_ref(x_2); lean_dec_ref(x_1); -goto block_14; +x_19 = lean_apply_10(x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, lean_box(0)); +return x_19; } else { lean_object* x_20; lean_object* x_21; uint8_t x_22; -x_20 = l_Lean_Expr_appFnCleanup___redArg(x_18); -x_21 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__2)); -x_22 = l_Lean_Expr_isConstOf(x_20, x_21); +x_20 = lean_ctor_get(x_17, 1); +lean_inc_ref(x_20); +x_21 = l_Lean_Expr_appFnCleanup___redArg(x_17); +x_22 = l_Lean_Expr_isApp(x_21); if (x_22 == 0) { -lean_object* x_23; uint8_t x_24; -x_23 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__4)); -x_24 = l_Lean_Expr_isConstOf(x_20, x_23); +lean_object* x_23; +lean_dec_ref(x_21); lean_dec_ref(x_20); -if (x_24 == 0) -{ -lean_dec_ref(x_17); lean_dec_ref(x_2); lean_dec_ref(x_1); -goto block_14; +x_23 = lean_apply_10(x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, lean_box(0)); +return x_23; } else { -lean_object* x_25; -lean_del_object(x_8); -x_25 = l_Lean_Meta_Sym_getBoolTrueExpr___redArg(x_3); -if (lean_obj_tag(x_25) == 0) +lean_object* x_24; lean_object* x_25; uint8_t x_26; +x_24 = l_Lean_Expr_appFnCleanup___redArg(x_21); +x_25 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__1)); +x_26 = l_Lean_Expr_isConstOf(x_24, x_25); +if (x_26 == 0) { -lean_object* x_26; lean_object* x_27; uint8_t x_28; uint8_t x_36; -x_26 = lean_ctor_get(x_25, 0); -x_36 = !lean_is_exclusive(x_25); -if (x_36 == 0) -{ -x_27 = x_25; -x_28 = x_36; -goto block_35; -} -else -{ -lean_inc(x_26); -lean_dec(x_25); -x_27 = lean_box(0); -x_28 = x_36; -goto block_35; -} -block_35: -{ -lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_29 = lean_obj_once(&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__3, &l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__3_once, _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__3); -x_30 = l_Lean_mkApp3(x_29, x_1, x_2, x_17); -x_31 = lean_alloc_ctor(1, 2, 1); -lean_ctor_set(x_31, 0, x_26); -lean_ctor_set(x_31, 1, x_30); -lean_ctor_set_uint8(x_31, sizeof(void*)*2, x_22); +lean_object* x_27; uint8_t x_28; +x_27 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__3)); +x_28 = l_Lean_Expr_isConstOf(x_24, x_27); +lean_dec_ref(x_24); if (x_28 == 0) { -lean_ctor_set(x_27, 0, x_31); -x_32 = x_27; -goto block_33; -} -else -{ -lean_object* x_34; -x_34 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_34, 0, x_31); -x_32 = x_34; -goto block_33; -} -block_33: -{ -return x_32; -} -} -} -else -{ -lean_object* x_37; lean_object* x_38; uint8_t x_39; uint8_t x_44; -lean_dec_ref(x_17); +lean_object* x_29; +lean_dec_ref(x_20); lean_dec_ref(x_2); lean_dec_ref(x_1); -x_37 = lean_ctor_get(x_25, 0); -x_44 = !lean_is_exclusive(x_25); -if (x_44 == 0) -{ -x_38 = x_25; -x_39 = x_44; -goto block_43; +x_29 = lean_apply_10(x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, lean_box(0)); +return x_29; } else { -lean_inc(x_37); -lean_dec(x_25); -x_38 = lean_box(0); -x_39 = x_44; -goto block_43; -} -block_43: +lean_object* x_30; +lean_dec(x_13); +lean_dec_ref(x_12); +lean_dec(x_11); +lean_dec_ref(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec_ref(x_6); +lean_dec(x_5); +lean_dec_ref(x_4); +x_30 = l_Lean_Meta_Sym_getBoolTrueExpr___redArg(x_8); +lean_dec_ref(x_8); +if (lean_obj_tag(x_30) == 0) { -lean_object* x_40; -if (x_39 == 0) +lean_object* x_31; lean_object* x_32; uint8_t x_33; uint8_t x_41; +x_31 = lean_ctor_get(x_30, 0); +x_41 = !lean_is_exclusive(x_30); +if (x_41 == 0) { -x_40 = x_38; -goto block_41; +x_32 = x_30; +x_33 = x_41; +goto block_40; } else { -lean_object* x_42; -x_42 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_42, 0, x_37); -x_40 = x_42; -goto block_41; +lean_inc(x_31); +lean_dec(x_30); +x_32 = lean_box(0); +x_33 = x_41; +goto block_40; } -block_41: +block_40: { -return x_40; +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_34 = lean_obj_once(&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__2, &l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__2_once, _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__2); +x_35 = l_Lean_mkApp3(x_34, x_1, x_2, x_20); +x_36 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_36, 0, x_31); +lean_ctor_set(x_36, 1, x_35); +lean_ctor_set_uint8(x_36, sizeof(void*)*2, x_26); +if (x_33 == 0) +{ +lean_ctor_set(x_32, 0, x_36); +x_37 = x_32; +goto block_38; } +else +{ +lean_object* x_39; +x_39 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_39, 0, x_36); +x_37 = x_39; +goto block_38; } +block_38: +{ +return x_37; } } } else { +lean_object* x_42; lean_object* x_43; uint8_t x_44; uint8_t x_49; +lean_dec_ref(x_20); +lean_dec_ref(x_2); +lean_dec_ref(x_1); +x_42 = lean_ctor_get(x_30, 0); +x_49 = !lean_is_exclusive(x_30); +if (x_49 == 0) +{ +x_43 = x_30; +x_44 = x_49; +goto block_48; +} +else +{ +lean_inc(x_42); +lean_dec(x_30); +x_43 = lean_box(0); +x_44 = x_49; +goto block_48; +} +block_48: +{ lean_object* x_45; +if (x_44 == 0) +{ +x_45 = x_43; +goto block_46; +} +else +{ +lean_object* x_47; +x_47 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_47, 0, x_42); +x_45 = x_47; +goto block_46; +} +block_46: +{ +return x_45; +} +} +} +} +} +else +{ +lean_object* x_50; +lean_dec_ref(x_24); +lean_dec(x_13); +lean_dec_ref(x_12); +lean_dec(x_11); +lean_dec_ref(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec_ref(x_6); +lean_dec(x_5); +lean_dec_ref(x_4); +x_50 = l_Lean_Meta_Sym_getBoolFalseExpr___redArg(x_8); +lean_dec_ref(x_8); +if (lean_obj_tag(x_50) == 0) +{ +lean_object* x_51; lean_object* x_52; uint8_t x_53; uint8_t x_62; +x_51 = lean_ctor_get(x_50, 0); +x_62 = !lean_is_exclusive(x_50); +if (x_62 == 0) +{ +x_52 = x_50; +x_53 = x_62; +goto block_61; +} +else +{ +lean_inc(x_51); +lean_dec(x_50); +x_52 = lean_box(0); +x_53 = x_62; +goto block_61; +} +block_61: +{ +lean_object* x_54; lean_object* x_55; uint8_t x_56; lean_object* x_57; lean_object* x_58; +x_54 = lean_obj_once(&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__5, &l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__5_once, _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___closed__5); +x_55 = l_Lean_mkApp3(x_54, x_1, x_2, x_20); +x_56 = 0; +x_57 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_57, 0, x_51); +lean_ctor_set(x_57, 1, x_55); +lean_ctor_set_uint8(x_57, sizeof(void*)*2, x_56); +if (x_53 == 0) +{ +lean_ctor_set(x_52, 0, x_57); +x_58 = x_52; +goto block_59; +} +else +{ +lean_object* x_60; +x_60 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_60, 0, x_57); +x_58 = x_60; +goto block_59; +} +block_59: +{ +return x_58; +} +} +} +else +{ +lean_object* x_63; lean_object* x_64; uint8_t x_65; uint8_t x_70; lean_dec_ref(x_20); -lean_del_object(x_8); -x_45 = l_Lean_Meta_Sym_getBoolFalseExpr___redArg(x_3); -if (lean_obj_tag(x_45) == 0) -{ -lean_object* x_46; lean_object* x_47; uint8_t x_48; uint8_t x_57; -x_46 = lean_ctor_get(x_45, 0); -x_57 = !lean_is_exclusive(x_45); -if (x_57 == 0) -{ -x_47 = x_45; -x_48 = x_57; -goto block_56; -} -else -{ -lean_inc(x_46); -lean_dec(x_45); -x_47 = lean_box(0); -x_48 = x_57; -goto block_56; -} -block_56: -{ -lean_object* x_49; lean_object* x_50; uint8_t x_51; lean_object* x_52; lean_object* x_53; -x_49 = lean_obj_once(&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__6, &l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__6_once, _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__6); -x_50 = l_Lean_mkApp3(x_49, x_1, x_2, x_17); -x_51 = 0; -x_52 = lean_alloc_ctor(1, 2, 1); -lean_ctor_set(x_52, 0, x_46); -lean_ctor_set(x_52, 1, x_50); -lean_ctor_set_uint8(x_52, sizeof(void*)*2, x_51); -if (x_48 == 0) -{ -lean_ctor_set(x_47, 0, x_52); -x_53 = x_47; -goto block_54; -} -else -{ -lean_object* x_55; -x_55 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_55, 0, x_52); -x_53 = x_55; -goto block_54; -} -block_54: -{ -return x_53; -} -} -} -else -{ -lean_object* x_58; lean_object* x_59; uint8_t x_60; uint8_t x_65; -lean_dec_ref(x_17); lean_dec_ref(x_2); lean_dec_ref(x_1); -x_58 = lean_ctor_get(x_45, 0); -x_65 = !lean_is_exclusive(x_45); -if (x_65 == 0) -{ -x_59 = x_45; -x_60 = x_65; -goto block_64; -} -else -{ -lean_inc(x_58); -lean_dec(x_45); -x_59 = lean_box(0); -x_60 = x_65; -goto block_64; -} -block_64: -{ -lean_object* x_61; -if (x_60 == 0) -{ -x_61 = x_59; -goto block_62; -} -else -{ -lean_object* x_63; -x_63 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_63, 0, x_58); -x_61 = x_63; -goto block_62; -} -block_62: -{ -return x_61; -} -} -} -} -} -} -block_14: -{ -lean_object* x_10; lean_object* x_11; -x_10 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___closed__0)); -if (x_9 == 0) -{ -lean_ctor_set(x_8, 0, x_10); -x_11 = x_8; -goto block_12; -} -else -{ -lean_object* x_13; -x_13 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_13, 0, x_10); -x_11 = x_13; -goto block_12; -} -block_12: -{ -return x_11; -} -} -} -} -else -{ -lean_object* x_68; lean_object* x_69; uint8_t x_70; uint8_t x_75; -lean_dec_ref(x_2); -lean_dec_ref(x_1); -x_68 = lean_ctor_get(x_6, 0); -x_75 = !lean_is_exclusive(x_6); -if (x_75 == 0) -{ -x_69 = x_6; -x_70 = x_75; -goto block_74; -} -else -{ -lean_inc(x_68); -lean_dec(x_6); -x_69 = lean_box(0); -x_70 = x_75; -goto block_74; -} -block_74: -{ -lean_object* x_71; +x_63 = lean_ctor_get(x_50, 0); +x_70 = !lean_is_exclusive(x_50); if (x_70 == 0) { -x_71 = x_69; -goto block_72; +x_64 = x_50; +x_65 = x_70; +goto block_69; } else { -lean_object* x_73; -x_73 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_73, 0, x_68); -x_71 = x_73; -goto block_72; +lean_inc(x_63); +lean_dec(x_50); +x_64 = lean_box(0); +x_65 = x_70; +goto block_69; } -block_72: +block_69: { -return x_71; -} -} -} -} -} -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: +lean_object* x_66; +if (x_65 == 0) { -lean_object* x_6; -x_6 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg(x_1, x_2, x_3, x_4); -lean_dec(x_4); -lean_dec_ref(x_3); -return x_6; +x_66 = x_64; +goto block_67; } -} -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { -_start: +else { -lean_object* x_13; -x_13 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg(x_1, x_2, x_6, x_9); -return x_13; +lean_object* x_68; +x_68 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_68, 0, x_63); +x_66 = x_68; +goto block_67; } -} -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12) { -_start: +block_67: { -lean_object* x_13; -x_13 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +return x_66; +} +} +} +} +} +} +} +else +{ +lean_object* x_71; lean_object* x_72; uint8_t x_73; uint8_t x_78; +lean_dec(x_13); +lean_dec_ref(x_12); lean_dec(x_11); lean_dec_ref(x_10); lean_dec(x_9); @@ -6387,31 +7962,77 @@ lean_dec(x_7); lean_dec_ref(x_6); lean_dec(x_5); lean_dec_ref(x_4); -lean_dec(x_3); -return x_13; +lean_dec_ref(x_2); +lean_dec_ref(x_1); +x_71 = lean_ctor_get(x_15, 0); +x_78 = !lean_is_exclusive(x_15); +if (x_78 == 0) +{ +x_72 = x_15; +x_73 = x_78; +goto block_77; +} +else +{ +lean_inc(x_71); +lean_dec(x_15); +x_72 = lean_box(0); +x_73 = x_78; +goto block_77; +} +block_77: +{ +lean_object* x_74; +if (x_73 == 0) +{ +x_74 = x_72; +goto block_75; +} +else +{ +lean_object* x_76; +x_76 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_76, 0, x_71); +x_74 = x_76; +goto block_75; +} +block_75: +{ +return x_74; } } -static lean_object* _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__2(void) { +} +} +} +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14) { +_start: +{ +lean_object* x_15; +x_15 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +return x_15; +} +} +static lean_object* _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__2(void) { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__1)); +x_2 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__1)); x_3 = l_Lean_mkConst(x_2, x_1); return x_3; } } -static lean_object* _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__5(void) { +static lean_object* _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__5(void) { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__4)); +x_2 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__4)); x_3 = l_Lean_mkConst(x_2, x_1); return x_3; } } -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { _start: { lean_object* x_17; @@ -6458,12 +8079,12 @@ else { lean_object* x_26; lean_object* x_27; uint8_t x_28; x_26 = l_Lean_Expr_appFnCleanup___redArg(x_23); -x_27 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__2)); +x_27 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__1)); x_28 = l_Lean_Expr_isConstOf(x_26, x_27); if (x_28 == 0) { lean_object* x_29; uint8_t x_30; -x_29 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__4)); +x_29 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchIteDecidable___closed__3)); x_30 = l_Lean_Expr_isConstOf(x_26, x_29); lean_dec_ref(x_26); if (x_30 == 0) @@ -6513,7 +8134,7 @@ goto block_42; block_42: { lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; -x_36 = lean_obj_once(&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__2, &l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__2_once, _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__2); +x_36 = lean_obj_once(&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__2, &l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__2_once, _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__2); x_37 = l_Lean_mkApp5(x_36, x_1, x_2, x_3, x_4, x_22); x_38 = lean_alloc_ctor(1, 2, 1); lean_ctor_set(x_38, 0, x_33); @@ -6624,7 +8245,7 @@ goto block_63; block_63: { lean_object* x_56; lean_object* x_57; uint8_t x_58; lean_object* x_59; lean_object* x_60; -x_56 = lean_obj_once(&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__5, &l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__5_once, _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___closed__5); +x_56 = lean_obj_once(&l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__5, &l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__5_once, _init_l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___closed__5); x_57 = l_Lean_mkApp5(x_56, x_1, x_2, x_3, x_4, x_22); x_58 = 0; x_59 = lean_alloc_ctor(1, 2, 1); @@ -6758,69 +8379,80 @@ return x_76; } } } -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { _start: { lean_object* x_17; -x_17 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); +x_17 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); return x_17; } } -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstWithFallback(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDecideDecidable(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12) { _start: { -lean_object* x_13; -lean_inc(x_9); -lean_inc_ref(x_6); -lean_inc_ref(x_2); -x_13 = lean_sym_simp(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_13) == 0) -{ lean_object* x_14; -x_14 = lean_ctor_get(x_13, 0); -lean_inc(x_14); -lean_dec_ref(x_13); +lean_inc(x_12); +lean_inc_ref(x_11); +lean_inc(x_10); +lean_inc_ref(x_9); +lean_inc(x_8); +lean_inc_ref(x_7); +lean_inc(x_6); +lean_inc_ref(x_5); +lean_inc(x_4); +lean_inc_ref(x_2); +x_14 = lean_sym_simp(x_2, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); if (lean_obj_tag(x_14) == 0) { lean_object* x_15; +x_15 = lean_ctor_get(x_14, 0); +lean_inc(x_15); lean_dec_ref(x_14); -x_15 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg(x_1, x_2, x_6, x_9); -lean_dec(x_9); -lean_dec_ref(x_6); -return x_15; +if (lean_obj_tag(x_15) == 0) +{ +lean_object* x_16; +lean_dec_ref(x_15); +lean_inc_ref(x_2); +x_16 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable(x_1, x_2, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +return x_16; } else { -lean_object* x_16; lean_object* x_17; -lean_dec_ref(x_2); -x_16 = lean_ctor_get(x_14, 0); -lean_inc_ref(x_16); -lean_dec_ref(x_14); -x_17 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInst___redArg(x_1, x_16, x_6, x_9); -lean_dec(x_9); -lean_dec_ref(x_6); -return x_17; +lean_object* x_17; lean_object* x_18; +x_17 = lean_ctor_get(x_15, 0); +lean_inc_ref(x_17); +lean_dec_ref(x_15); +x_18 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidable(x_1, x_2, x_17, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +return x_18; } } else { -lean_dec(x_9); -lean_dec_ref(x_6); +lean_dec(x_12); +lean_dec_ref(x_11); +lean_dec(x_10); +lean_dec_ref(x_9); +lean_dec(x_8); +lean_dec_ref(x_7); +lean_dec(x_6); +lean_dec_ref(x_5); +lean_dec(x_4); +lean_dec_ref(x_3); lean_dec_ref(x_2); lean_dec_ref(x_1); -return x_13; +return x_14; } } } -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstWithFallback___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12) { +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDecideDecidable___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13) { _start: { -lean_object* x_13; -x_13 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstWithFallback(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -return x_13; +lean_object* x_14; +x_14 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDecideDecidable(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +return x_14; } } -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstWithFallbackCongr(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDecideDecidableCongr(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { _start: { lean_object* x_17; @@ -6845,7 +8477,7 @@ if (lean_obj_tag(x_18) == 0) { lean_object* x_19; lean_dec_ref(x_18); -x_19 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); +x_19 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); return x_19; } else @@ -6855,7 +8487,7 @@ lean_dec_ref(x_5); x_20 = lean_ctor_get(x_18, 0); lean_inc_ref(x_20); lean_dec_ref(x_18); -x_21 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstCongr(x_1, x_2, x_3, x_4, x_20, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); +x_21 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_matchDecideDecidableCongr(x_1, x_2, x_3, x_4, x_20, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); return x_21; } } @@ -6880,15 +8512,15 @@ return x_17; } } } -LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstWithFallbackCongr___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { +LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDecideDecidableCongr___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { _start: { lean_object* x_17; -x_17 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstWithFallbackCongr(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); +x_17 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDecideDecidableCongr(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); return x_17; } } -LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, uint8_t x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16, lean_object* x_17, lean_object* x_18, lean_object* x_19) { +LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, uint8_t x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16, lean_object* x_17, lean_object* x_18, lean_object* x_19) { _start: { lean_object* x_21; @@ -6924,7 +8556,7 @@ goto block_35; block_35: { lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_27 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__0)); +x_27 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__0)); x_28 = l_Lean_Name_mkStr3(x_4, x_5, x_27); x_29 = l_Lean_mkConst(x_28, x_6); x_30 = l_Lean_mkApp5(x_29, x_7, x_2, x_8, x_9, x_3); @@ -7059,7 +8691,7 @@ return x_48; } } } -LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___boxed(lean_object** _args) { +LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___boxed(lean_object** _args) { lean_object* x_1 = _args[0]; lean_object* x_2 = _args[1]; lean_object* x_3 = _args[2]; @@ -7084,74 +8716,64 @@ _start: { uint8_t x_21; lean_object* x_22; x_21 = lean_unbox(x_10); -x_22 = l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_21, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19); +x_22 = l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_21, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18, x_19); lean_dec(x_13); lean_dec_ref(x_12); lean_dec(x_11); return x_22; } } -static lean_object* _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__4(void) { +static lean_object* _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__4(void) { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__3)); +x_2 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__3)); x_3 = l_Lean_mkConst(x_2, x_1); return x_3; } } -static lean_object* _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__7(void) { +static lean_object* _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__7(void) { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__6)); +x_2 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__6)); x_3 = l_Lean_mkConst(x_2, x_1); return x_3; } } -static lean_object* _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__9(void) { +static lean_object* _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__8(void) { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__8)); +x_2 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__1)); x_3 = l_Lean_mkConst(x_2, x_1); return x_3; } } -static lean_object* _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__10(void) { +static lean_object* _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__11(void) { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__1)); +x_2 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__10)); x_3 = l_Lean_mkConst(x_2, x_1); return x_3; } } -static lean_object* _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__13(void) { +static lean_object* _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__14(void) { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__12)); +x_2 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__13)); x_3 = l_Lean_mkConst(x_2, x_1); return x_3; } } -static lean_object* _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__16(void) { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__15)); -x_3 = l_Lean_mkConst(x_2, x_1); -return x_3; -} -} -LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { +LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { _start: { lean_object* x_16; uint8_t x_17; @@ -7199,9 +8821,9 @@ lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean x_21 = lean_ctor_get(x_19, 1); lean_inc_ref(x_21); x_22 = l_Lean_Expr_appFnCleanup___redArg(x_19); -x_23 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpIteDecidable___closed__0)); -x_24 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__0)); -x_25 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__1)); +x_23 = ((lean_object*)(l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance___closed__0)); +x_24 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__0)); +x_25 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__1)); x_26 = l_Lean_Expr_isConstOf(x_22, x_25); lean_dec_ref(x_22); if (x_26 == 0) @@ -7241,38 +8863,74 @@ lean_inc(x_28); lean_dec_ref(x_27); if (lean_obj_tag(x_28) == 0) { -lean_object* x_29; -lean_dec_ref(x_28); -x_29 = l_Lean_Meta_Sym_isTrueExpr___redArg(x_21, x_6); -if (lean_obj_tag(x_29) == 0) +lean_object* x_29; uint8_t x_30; uint8_t x_100; +x_100 = !lean_is_exclusive(x_28); +if (x_100 == 0) { -lean_object* x_30; uint8_t x_31; -x_30 = lean_ctor_get(x_29, 0); -lean_inc(x_30); -lean_dec_ref(x_29); -x_31 = lean_unbox(x_30); -if (x_31 == 0) -{ -lean_object* x_32; -x_32 = l_Lean_Meta_Sym_isFalseExpr___redArg(x_21, x_6); -if (lean_obj_tag(x_32) == 0) -{ -lean_object* x_33; uint8_t x_34; -x_33 = lean_ctor_get(x_32, 0); -lean_inc(x_33); -lean_dec_ref(x_32); -x_34 = lean_unbox(x_33); -lean_dec(x_33); -if (x_34 == 0) -{ -lean_object* x_35; -lean_dec(x_30); -x_35 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstWithFallback(x_21, x_18, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -return x_35; +x_29 = x_28; +x_30 = x_100; +goto block_99; } else { -lean_object* x_36; +lean_dec(x_28); +x_29 = lean_box(0); +x_30 = x_100; +goto block_99; +} +block_99: +{ +lean_object* x_31; +x_31 = l_Lean_Meta_Sym_isTrueExpr___redArg(x_21, x_6); +if (lean_obj_tag(x_31) == 0) +{ +lean_object* x_32; uint8_t x_33; +x_32 = lean_ctor_get(x_31, 0); +lean_inc(x_32); +lean_dec_ref(x_31); +x_33 = lean_unbox(x_32); +if (x_33 == 0) +{ +lean_object* x_34; +x_34 = l_Lean_Meta_Sym_isFalseExpr___redArg(x_21, x_6); +if (lean_obj_tag(x_34) == 0) +{ +lean_object* x_35; uint8_t x_36; +x_35 = lean_ctor_get(x_34, 0); +lean_inc(x_35); +lean_dec_ref(x_34); +x_36 = lean_unbox(x_35); +lean_dec(x_35); +if (x_36 == 0) +{ +lean_object* x_37; +lean_dec(x_32); +if (x_30 == 0) +{ +x_37 = x_29; +goto block_40; +} +else +{ +lean_object* x_41; +x_41 = lean_alloc_ctor(0, 0, 1); +x_37 = x_41; +goto block_40; +} +block_40: +{ +lean_object* x_38; lean_object* x_39; +lean_ctor_set_uint8(x_37, 0, x_26); +x_38 = lean_alloc_closure((void*)(l_Lean_Meta_Sym_Simp_simpIteCbv___lam__0___boxed), 11, 1); +lean_closure_set(x_38, 0, x_37); +x_39 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDecideDecidable(x_21, x_18, x_38, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +return x_39; +} +} +else +{ +lean_object* x_42; +lean_del_object(x_29); lean_dec_ref(x_21); lean_dec(x_11); lean_dec_ref(x_10); @@ -7282,161 +8940,163 @@ lean_dec(x_7); lean_dec(x_5); lean_dec_ref(x_4); lean_dec(x_3); -x_36 = l_Lean_Meta_Sym_getBoolFalseExpr___redArg(x_6); +x_42 = l_Lean_Meta_Sym_getBoolFalseExpr___redArg(x_6); lean_dec_ref(x_6); -if (lean_obj_tag(x_36) == 0) +if (lean_obj_tag(x_42) == 0) { -lean_object* x_37; lean_object* x_38; uint8_t x_39; uint8_t x_48; -x_37 = lean_ctor_get(x_36, 0); -x_48 = !lean_is_exclusive(x_36); -if (x_48 == 0) +lean_object* x_43; lean_object* x_44; uint8_t x_45; uint8_t x_54; +x_43 = lean_ctor_get(x_42, 0); +x_54 = !lean_is_exclusive(x_42); +if (x_54 == 0) { -x_38 = x_36; -x_39 = x_48; -goto block_47; -} -else -{ -lean_inc(x_37); -lean_dec(x_36); -x_38 = lean_box(0); -x_39 = x_48; -goto block_47; -} -block_47: -{ -lean_object* x_40; lean_object* x_41; lean_object* x_42; uint8_t x_43; lean_object* x_44; -x_40 = lean_obj_once(&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__4, &l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__4_once, _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__4); -x_41 = l_Lean_Expr_app___override(x_40, x_18); -x_42 = lean_alloc_ctor(1, 2, 1); -lean_ctor_set(x_42, 0, x_37); -lean_ctor_set(x_42, 1, x_41); -x_43 = lean_unbox(x_30); -lean_dec(x_30); -lean_ctor_set_uint8(x_42, sizeof(void*)*2, x_43); -if (x_39 == 0) -{ -lean_ctor_set(x_38, 0, x_42); -x_44 = x_38; -goto block_45; -} -else -{ -lean_object* x_46; -x_46 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_46, 0, x_42); -x_44 = x_46; -goto block_45; -} -block_45: -{ -return x_44; -} -} -} -else -{ -lean_object* x_49; lean_object* x_50; uint8_t x_51; uint8_t x_56; -lean_dec(x_30); -lean_dec_ref(x_18); -x_49 = lean_ctor_get(x_36, 0); -x_56 = !lean_is_exclusive(x_36); -if (x_56 == 0) -{ -x_50 = x_36; -x_51 = x_56; -goto block_55; -} -else -{ -lean_inc(x_49); -lean_dec(x_36); -x_50 = lean_box(0); -x_51 = x_56; -goto block_55; -} -block_55: -{ -lean_object* x_52; -if (x_51 == 0) -{ -x_52 = x_50; +x_44 = x_42; +x_45 = x_54; goto block_53; } else { -lean_object* x_54; -x_54 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_54, 0, x_49); -x_52 = x_54; +lean_inc(x_43); +lean_dec(x_42); +x_44 = lean_box(0); +x_45 = x_54; goto block_53; } block_53: { -return x_52; -} -} -} -} -} -else -{ -lean_object* x_57; lean_object* x_58; uint8_t x_59; uint8_t x_64; -lean_dec(x_30); -lean_dec_ref(x_21); -lean_dec_ref(x_18); -lean_dec(x_11); -lean_dec_ref(x_10); -lean_dec(x_9); -lean_dec_ref(x_8); -lean_dec(x_7); -lean_dec_ref(x_6); -lean_dec(x_5); -lean_dec_ref(x_4); -lean_dec(x_3); -x_57 = lean_ctor_get(x_32, 0); -x_64 = !lean_is_exclusive(x_32); -if (x_64 == 0) -{ -x_58 = x_32; -x_59 = x_64; -goto block_63; -} -else -{ -lean_inc(x_57); +lean_object* x_46; lean_object* x_47; lean_object* x_48; uint8_t x_49; lean_object* x_50; +x_46 = lean_obj_once(&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__4, &l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__4_once, _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__4); +x_47 = l_Lean_Expr_app___override(x_46, x_18); +x_48 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_48, 0, x_43); +lean_ctor_set(x_48, 1, x_47); +x_49 = lean_unbox(x_32); lean_dec(x_32); -x_58 = lean_box(0); -x_59 = x_64; -goto block_63; +lean_ctor_set_uint8(x_48, sizeof(void*)*2, x_49); +if (x_45 == 0) +{ +lean_ctor_set(x_44, 0, x_48); +x_50 = x_44; +goto block_51; } -block_63: +else { -lean_object* x_60; -if (x_59 == 0) +lean_object* x_52; +x_52 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_52, 0, x_48); +x_50 = x_52; +goto block_51; +} +block_51: { -x_60 = x_58; +return x_50; +} +} +} +else +{ +lean_object* x_55; lean_object* x_56; uint8_t x_57; uint8_t x_62; +lean_dec(x_32); +lean_dec_ref(x_18); +x_55 = lean_ctor_get(x_42, 0); +x_62 = !lean_is_exclusive(x_42); +if (x_62 == 0) +{ +x_56 = x_42; +x_57 = x_62; goto block_61; } else { -lean_object* x_62; -x_62 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_62, 0, x_57); -x_60 = x_62; +lean_inc(x_55); +lean_dec(x_42); +x_56 = lean_box(0); +x_57 = x_62; goto block_61; } block_61: { -return x_60; +lean_object* x_58; +if (x_57 == 0) +{ +x_58 = x_56; +goto block_59; +} +else +{ +lean_object* x_60; +x_60 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_60, 0, x_55); +x_58 = x_60; +goto block_59; +} +block_59: +{ +return x_58; +} } } } } else { -lean_object* x_65; -lean_dec(x_30); +lean_object* x_63; lean_object* x_64; uint8_t x_65; uint8_t x_70; +lean_dec(x_32); +lean_del_object(x_29); +lean_dec_ref(x_21); +lean_dec_ref(x_18); +lean_dec(x_11); +lean_dec_ref(x_10); +lean_dec(x_9); +lean_dec_ref(x_8); +lean_dec(x_7); +lean_dec_ref(x_6); +lean_dec(x_5); +lean_dec_ref(x_4); +lean_dec(x_3); +x_63 = lean_ctor_get(x_34, 0); +x_70 = !lean_is_exclusive(x_34); +if (x_70 == 0) +{ +x_64 = x_34; +x_65 = x_70; +goto block_69; +} +else +{ +lean_inc(x_63); +lean_dec(x_34); +x_64 = lean_box(0); +x_65 = x_70; +goto block_69; +} +block_69: +{ +lean_object* x_66; +if (x_65 == 0) +{ +x_66 = x_64; +goto block_67; +} +else +{ +lean_object* x_68; +x_68 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_68, 0, x_63); +x_66 = x_68; +goto block_67; +} +block_67: +{ +return x_66; +} +} +} +} +else +{ +lean_object* x_71; +lean_dec(x_32); +lean_del_object(x_29); lean_dec_ref(x_21); lean_dec(x_11); lean_dec_ref(x_10); @@ -7446,273 +9106,268 @@ lean_dec(x_7); lean_dec(x_5); lean_dec_ref(x_4); lean_dec(x_3); -x_65 = l_Lean_Meta_Sym_getBoolTrueExpr___redArg(x_6); +x_71 = l_Lean_Meta_Sym_getBoolTrueExpr___redArg(x_6); lean_dec_ref(x_6); -if (lean_obj_tag(x_65) == 0) +if (lean_obj_tag(x_71) == 0) { -lean_object* x_66; lean_object* x_67; uint8_t x_68; uint8_t x_76; -x_66 = lean_ctor_get(x_65, 0); -x_76 = !lean_is_exclusive(x_65); -if (x_76 == 0) +lean_object* x_72; lean_object* x_73; uint8_t x_74; uint8_t x_82; +x_72 = lean_ctor_get(x_71, 0); +x_82 = !lean_is_exclusive(x_71); +if (x_82 == 0) { -x_67 = x_65; -x_68 = x_76; -goto block_75; -} -else -{ -lean_inc(x_66); -lean_dec(x_65); -x_67 = lean_box(0); -x_68 = x_76; -goto block_75; -} -block_75: -{ -lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; -x_69 = lean_obj_once(&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__7, &l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__7_once, _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__7); -x_70 = l_Lean_Expr_app___override(x_69, x_18); -x_71 = lean_alloc_ctor(1, 2, 1); -lean_ctor_set(x_71, 0, x_66); -lean_ctor_set(x_71, 1, x_70); -lean_ctor_set_uint8(x_71, sizeof(void*)*2, x_1); -if (x_68 == 0) -{ -lean_ctor_set(x_67, 0, x_71); -x_72 = x_67; -goto block_73; -} -else -{ -lean_object* x_74; -x_74 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_74, 0, x_71); -x_72 = x_74; -goto block_73; -} -block_73: -{ -return x_72; -} -} -} -else -{ -lean_object* x_77; lean_object* x_78; uint8_t x_79; uint8_t x_84; -lean_dec_ref(x_18); -x_77 = lean_ctor_get(x_65, 0); -x_84 = !lean_is_exclusive(x_65); -if (x_84 == 0) -{ -x_78 = x_65; -x_79 = x_84; -goto block_83; -} -else -{ -lean_inc(x_77); -lean_dec(x_65); -x_78 = lean_box(0); -x_79 = x_84; -goto block_83; -} -block_83: -{ -lean_object* x_80; -if (x_79 == 0) -{ -x_80 = x_78; +x_73 = x_71; +x_74 = x_82; goto block_81; } else { -lean_object* x_82; -x_82 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_82, 0, x_77); -x_80 = x_82; +lean_inc(x_72); +lean_dec(x_71); +x_73 = lean_box(0); +x_74 = x_82; goto block_81; } block_81: { -return x_80; +lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; +x_75 = lean_obj_once(&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__7, &l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__7_once, _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__7); +x_76 = l_Lean_Expr_app___override(x_75, x_18); +x_77 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_77, 0, x_72); +lean_ctor_set(x_77, 1, x_76); +lean_ctor_set_uint8(x_77, sizeof(void*)*2, x_1); +if (x_74 == 0) +{ +lean_ctor_set(x_73, 0, x_77); +x_78 = x_73; +goto block_79; } +else +{ +lean_object* x_80; +x_80 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_80, 0, x_77); +x_78 = x_80; +goto block_79; } +block_79: +{ +return x_78; } } } else { -lean_object* x_85; lean_object* x_86; uint8_t x_87; uint8_t x_92; -lean_dec_ref(x_21); +lean_object* x_83; lean_object* x_84; uint8_t x_85; uint8_t x_90; lean_dec_ref(x_18); -lean_dec(x_11); -lean_dec_ref(x_10); -lean_dec(x_9); -lean_dec_ref(x_8); -lean_dec(x_7); -lean_dec_ref(x_6); -lean_dec(x_5); -lean_dec_ref(x_4); -lean_dec(x_3); -x_85 = lean_ctor_get(x_29, 0); -x_92 = !lean_is_exclusive(x_29); -if (x_92 == 0) +x_83 = lean_ctor_get(x_71, 0); +x_90 = !lean_is_exclusive(x_71); +if (x_90 == 0) { -x_86 = x_29; -x_87 = x_92; -goto block_91; -} -else -{ -lean_inc(x_85); -lean_dec(x_29); -x_86 = lean_box(0); -x_87 = x_92; -goto block_91; -} -block_91: -{ -lean_object* x_88; -if (x_87 == 0) -{ -x_88 = x_86; +x_84 = x_71; +x_85 = x_90; goto block_89; } else { -lean_object* x_90; -x_90 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_90, 0, x_85); -x_88 = x_90; +lean_inc(x_83); +lean_dec(x_71); +x_84 = lean_box(0); +x_85 = x_90; goto block_89; } block_89: { -return x_88; +lean_object* x_86; +if (x_85 == 0) +{ +x_86 = x_84; +goto block_87; +} +else +{ +lean_object* x_88; +x_88 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_88, 0, x_83); +x_86 = x_88; +goto block_87; +} +block_87: +{ +return x_86; +} } } } } else { -lean_object* x_93; lean_object* x_94; lean_object* x_95; uint8_t x_96; uint8_t x_203; -x_93 = lean_ctor_get(x_28, 0); -x_94 = lean_ctor_get(x_28, 1); -x_203 = !lean_is_exclusive(x_28); -if (x_203 == 0) +lean_object* x_91; lean_object* x_92; uint8_t x_93; uint8_t x_98; +lean_del_object(x_29); +lean_dec_ref(x_21); +lean_dec_ref(x_18); +lean_dec(x_11); +lean_dec_ref(x_10); +lean_dec(x_9); +lean_dec_ref(x_8); +lean_dec(x_7); +lean_dec_ref(x_6); +lean_dec(x_5); +lean_dec_ref(x_4); +lean_dec(x_3); +x_91 = lean_ctor_get(x_31, 0); +x_98 = !lean_is_exclusive(x_31); +if (x_98 == 0) { -x_95 = x_28; -x_96 = x_203; -goto block_202; +x_92 = x_31; +x_93 = x_98; +goto block_97; } else { -lean_inc(x_94); -lean_inc(x_93); -lean_dec(x_28); -x_95 = lean_box(0); -x_96 = x_203; -goto block_202; +lean_inc(x_91); +lean_dec(x_31); +x_92 = lean_box(0); +x_93 = x_98; +goto block_97; } -block_202: +block_97: { -lean_object* x_97; -x_97 = l_Lean_Meta_Sym_isTrueExpr___redArg(x_93, x_6); -if (lean_obj_tag(x_97) == 0) +lean_object* x_94; +if (x_93 == 0) { -lean_object* x_98; uint8_t x_99; -x_98 = lean_ctor_get(x_97, 0); -lean_inc(x_98); -lean_dec_ref(x_97); -x_99 = lean_unbox(x_98); -if (x_99 == 0) +x_94 = x_92; +goto block_95; +} +else { -lean_object* x_100; -x_100 = l_Lean_Meta_Sym_isFalseExpr___redArg(x_93, x_6); -if (lean_obj_tag(x_100) == 0) +lean_object* x_96; +x_96 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_96, 0, x_91); +x_94 = x_96; +goto block_95; +} +block_95: { -lean_object* x_101; uint8_t x_102; -x_101 = lean_ctor_get(x_100, 0); +return x_94; +} +} +} +} +} +else +{ +lean_object* x_101; lean_object* x_102; lean_object* x_103; uint8_t x_104; uint8_t x_193; +x_101 = lean_ctor_get(x_28, 0); +x_102 = lean_ctor_get(x_28, 1); +x_193 = !lean_is_exclusive(x_28); +if (x_193 == 0) +{ +x_103 = x_28; +x_104 = x_193; +goto block_192; +} +else +{ +lean_inc(x_102); lean_inc(x_101); -lean_dec_ref(x_100); -x_102 = lean_unbox(x_101); -if (x_102 == 0) -{ -lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; -lean_dec(x_98); -lean_del_object(x_95); +lean_dec(x_28); x_103 = lean_box(0); -x_104 = lean_obj_once(&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__9, &l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__9_once, _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__9); -lean_inc_ref(x_93); -x_105 = l_Lean_Expr_app___override(x_104, x_93); -x_106 = lean_box(0); +x_104 = x_193; +goto block_192; +} +block_192: +{ +lean_object* x_105; +x_105 = l_Lean_Meta_Sym_isTrueExpr___redArg(x_101, x_6); +if (lean_obj_tag(x_105) == 0) +{ +lean_object* x_106; uint8_t x_107; +x_106 = lean_ctor_get(x_105, 0); +lean_inc(x_106); +lean_dec_ref(x_105); +x_107 = lean_unbox(x_106); +if (x_107 == 0) +{ +lean_object* x_108; +x_108 = l_Lean_Meta_Sym_isFalseExpr___redArg(x_101, x_6); +if (lean_obj_tag(x_108) == 0) +{ +lean_object* x_109; uint8_t x_110; +x_109 = lean_ctor_get(x_108, 0); +lean_inc(x_109); +lean_dec_ref(x_108); +x_110 = lean_unbox(x_109); +lean_dec(x_109); +if (x_110 == 0) +{ +lean_object* x_111; +lean_dec(x_106); +lean_del_object(x_103); lean_inc(x_11); lean_inc_ref(x_10); lean_inc(x_9); lean_inc_ref(x_8); -x_107 = l_Lean_Meta_trySynthInstance(x_105, x_106, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_107) == 0) +lean_inc_ref(x_101); +x_111 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_trySynthComputableInstance(x_101, x_6, x_7, x_8, x_9, x_10, x_11); +if (lean_obj_tag(x_111) == 0) { -lean_object* x_108; lean_object* x_109; uint8_t x_110; uint8_t x_132; -x_108 = lean_ctor_get(x_107, 0); -x_132 = !lean_is_exclusive(x_107); -if (x_132 == 0) -{ -x_109 = x_107; -x_110 = x_132; -goto block_131; -} -else -{ -lean_inc(x_108); -lean_dec(x_107); -x_109 = lean_box(0); -x_110 = x_132; -goto block_131; -} -block_131: -{ -if (lean_obj_tag(x_108) == 1) -{ -lean_object* x_111; lean_object* x_112; -lean_del_object(x_109); -lean_dec(x_101); -x_111 = lean_ctor_get(x_108, 0); -lean_inc(x_111); -lean_dec_ref(x_108); -x_112 = l_Lean_Meta_Sym_shareCommon___redArg(x_111, x_7); +lean_object* x_112; lean_object* x_113; +x_112 = lean_ctor_get(x_111, 0); +lean_inc(x_112); +lean_dec_ref(x_111); if (lean_obj_tag(x_112) == 0) { -lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_113 = lean_ctor_get(x_112, 0); -lean_inc(x_113); -lean_dec_ref(x_112); -x_114 = lean_obj_once(&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__10, &l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__10_once, _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__10); -x_115 = lean_box(x_26); +lean_object* x_120; lean_object* x_121; +x_120 = lean_obj_once(&l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__6, &l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__6_once, _init_l_Lean_Meta_Sym_Simp_simpIteCbv___lam__2___closed__6); +lean_inc_ref(x_102); lean_inc_ref(x_18); -lean_inc_ref(x_94); +lean_inc_ref(x_101); lean_inc_ref(x_21); -lean_inc(x_113); -lean_inc_ref(x_93); -x_116 = lean_alloc_closure((void*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___boxed), 20, 10); -lean_closure_set(x_116, 0, x_114); -lean_closure_set(x_116, 1, x_93); -lean_closure_set(x_116, 2, x_113); -lean_closure_set(x_116, 3, x_23); -lean_closure_set(x_116, 4, x_24); -lean_closure_set(x_116, 5, x_103); -lean_closure_set(x_116, 6, x_21); -lean_closure_set(x_116, 7, x_94); -lean_closure_set(x_116, 8, x_18); -lean_closure_set(x_116, 9, x_115); -x_117 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpDecideByInstWithFallbackCongr(x_21, x_93, x_94, x_18, x_113, x_116, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -return x_117; +x_121 = l_Lean_mkApp4(x_120, x_21, x_101, x_18, x_102); +x_113 = x_121; +goto block_119; } else { -lean_object* x_118; lean_object* x_119; uint8_t x_120; uint8_t x_125; -lean_dec_ref(x_94); -lean_dec_ref(x_93); +lean_object* x_122; +x_122 = lean_ctor_get(x_112, 0); +lean_inc(x_122); +lean_dec_ref(x_112); +x_113 = x_122; +goto block_119; +} +block_119: +{ +lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; +x_114 = lean_box(0); +x_115 = lean_obj_once(&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__8, &l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__8_once, _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__8); +x_116 = lean_box(x_26); +lean_inc_ref(x_18); +lean_inc_ref(x_102); +lean_inc_ref(x_21); +lean_inc_ref(x_113); +lean_inc_ref(x_101); +x_117 = lean_alloc_closure((void*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___boxed), 20, 10); +lean_closure_set(x_117, 0, x_115); +lean_closure_set(x_117, 1, x_101); +lean_closure_set(x_117, 2, x_113); +lean_closure_set(x_117, 3, x_23); +lean_closure_set(x_117, 4, x_24); +lean_closure_set(x_117, 5, x_114); +lean_closure_set(x_117, 6, x_21); +lean_closure_set(x_117, 7, x_102); +lean_closure_set(x_117, 8, x_18); +lean_closure_set(x_117, 9, x_116); +x_118 = l___private_Lean_Meta_Tactic_Cbv_ControlFlow_0__Lean_Meta_Sym_Simp_simpAndMatchDecideDecidableCongr(x_21, x_101, x_102, x_18, x_113, x_117, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +return x_118; +} +} +else +{ +lean_object* x_123; lean_object* x_124; uint8_t x_125; uint8_t x_130; +lean_dec_ref(x_102); +lean_dec_ref(x_101); lean_dec_ref(x_21); lean_dec_ref(x_18); lean_dec(x_11); @@ -7724,215 +9379,163 @@ lean_dec_ref(x_6); lean_dec(x_5); lean_dec_ref(x_4); lean_dec(x_3); -x_118 = lean_ctor_get(x_112, 0); -x_125 = !lean_is_exclusive(x_112); -if (x_125 == 0) +x_123 = lean_ctor_get(x_111, 0); +x_130 = !lean_is_exclusive(x_111); +if (x_130 == 0) { -x_119 = x_112; -x_120 = x_125; -goto block_124; -} -else -{ -lean_inc(x_118); -lean_dec(x_112); -x_119 = lean_box(0); -x_120 = x_125; -goto block_124; -} -block_124: -{ -lean_object* x_121; -if (x_120 == 0) -{ -x_121 = x_119; -goto block_122; -} -else -{ -lean_object* x_123; -x_123 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_123, 0, x_118); -x_121 = x_123; -goto block_122; -} -block_122: -{ -return x_121; -} -} -} -} -else -{ -lean_object* x_126; uint8_t x_127; lean_object* x_128; -lean_dec(x_108); -lean_dec_ref(x_94); -lean_dec_ref(x_93); -lean_dec_ref(x_21); -lean_dec_ref(x_18); -lean_dec(x_11); -lean_dec_ref(x_10); -lean_dec(x_9); -lean_dec_ref(x_8); -lean_dec(x_7); -lean_dec_ref(x_6); -lean_dec(x_5); -lean_dec_ref(x_4); -lean_dec(x_3); -x_126 = lean_alloc_ctor(0, 0, 1); -x_127 = lean_unbox(x_101); -lean_dec(x_101); -lean_ctor_set_uint8(x_126, 0, x_127); -if (x_110 == 0) -{ -lean_ctor_set(x_109, 0, x_126); -x_128 = x_109; +x_124 = x_111; +x_125 = x_130; goto block_129; } else { -lean_object* x_130; -x_130 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_130, 0, x_126); -x_128 = x_130; +lean_inc(x_123); +lean_dec(x_111); +x_124 = lean_box(0); +x_125 = x_130; goto block_129; } block_129: { -return x_128; +lean_object* x_126; +if (x_125 == 0) +{ +x_126 = x_124; +goto block_127; +} +else +{ +lean_object* x_128; +x_128 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_128, 0, x_123); +x_126 = x_128; +goto block_127; +} +block_127: +{ +return x_126; } } } } else { -lean_object* x_133; lean_object* x_134; uint8_t x_135; uint8_t x_140; -lean_dec(x_101); -lean_dec_ref(x_94); -lean_dec_ref(x_93); -lean_dec_ref(x_21); -lean_dec_ref(x_18); +lean_object* x_131; +lean_dec_ref(x_101); lean_dec(x_11); lean_dec_ref(x_10); lean_dec(x_9); lean_dec_ref(x_8); lean_dec(x_7); -lean_dec_ref(x_6); lean_dec(x_5); lean_dec_ref(x_4); lean_dec(x_3); -x_133 = lean_ctor_get(x_107, 0); -x_140 = !lean_is_exclusive(x_107); -if (x_140 == 0) +x_131 = l_Lean_Meta_Sym_getBoolFalseExpr___redArg(x_6); +lean_dec_ref(x_6); +if (lean_obj_tag(x_131) == 0) { -x_134 = x_107; -x_135 = x_140; -goto block_139; +lean_object* x_132; lean_object* x_133; uint8_t x_134; uint8_t x_145; +x_132 = lean_ctor_get(x_131, 0); +x_145 = !lean_is_exclusive(x_131); +if (x_145 == 0) +{ +x_133 = x_131; +x_134 = x_145; +goto block_144; } else { -lean_inc(x_133); -lean_dec(x_107); -x_134 = lean_box(0); -x_135 = x_140; -goto block_139; +lean_inc(x_132); +lean_dec(x_131); +x_133 = lean_box(0); +x_134 = x_145; +goto block_144; } -block_139: +block_144: { -lean_object* x_136; -if (x_135 == 0) +lean_object* x_135; lean_object* x_136; lean_object* x_137; +x_135 = lean_obj_once(&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__11, &l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__11_once, _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__11); +x_136 = l_Lean_mkApp3(x_135, x_21, x_18, x_102); +if (x_104 == 0) { -x_136 = x_134; -goto block_137; +lean_ctor_set(x_103, 1, x_136); +lean_ctor_set(x_103, 0, x_132); +x_137 = x_103; +goto block_142; } else { -lean_object* x_138; -x_138 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_138, 0, x_133); -x_136 = x_138; -goto block_137; +lean_object* x_143; +x_143 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_143, 0, x_132); +lean_ctor_set(x_143, 1, x_136); +x_137 = x_143; +goto block_142; } -block_137: +block_142: { -return x_136; -} -} -} +uint8_t x_138; lean_object* x_139; +x_138 = lean_unbox(x_106); +lean_dec(x_106); +lean_ctor_set_uint8(x_137, sizeof(void*)*2, x_138); +if (x_134 == 0) +{ +lean_ctor_set(x_133, 0, x_137); +x_139 = x_133; +goto block_140; } else { lean_object* x_141; -lean_dec(x_101); -lean_dec_ref(x_93); -lean_dec(x_11); -lean_dec_ref(x_10); -lean_dec(x_9); -lean_dec_ref(x_8); -lean_dec(x_7); -lean_dec(x_5); -lean_dec_ref(x_4); -lean_dec(x_3); -x_141 = l_Lean_Meta_Sym_getBoolFalseExpr___redArg(x_6); -lean_dec_ref(x_6); -if (lean_obj_tag(x_141) == 0) +x_141 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_141, 0, x_137); +x_139 = x_141; +goto block_140; +} +block_140: { -lean_object* x_142; lean_object* x_143; uint8_t x_144; uint8_t x_155; -x_142 = lean_ctor_get(x_141, 0); -x_155 = !lean_is_exclusive(x_141); -if (x_155 == 0) -{ -x_143 = x_141; -x_144 = x_155; -goto block_154; +return x_139; +} +} +} } else { -lean_inc(x_142); -lean_dec(x_141); -x_143 = lean_box(0); -x_144 = x_155; -goto block_154; -} -block_154: +lean_object* x_146; lean_object* x_147; uint8_t x_148; uint8_t x_153; +lean_dec(x_106); +lean_del_object(x_103); +lean_dec_ref(x_102); +lean_dec_ref(x_21); +lean_dec_ref(x_18); +x_146 = lean_ctor_get(x_131, 0); +x_153 = !lean_is_exclusive(x_131); +if (x_153 == 0) { -lean_object* x_145; lean_object* x_146; lean_object* x_147; -x_145 = lean_obj_once(&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__13, &l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__13_once, _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__13); -x_146 = l_Lean_mkApp3(x_145, x_21, x_18, x_94); -if (x_96 == 0) -{ -lean_ctor_set(x_95, 1, x_146); -lean_ctor_set(x_95, 0, x_142); -x_147 = x_95; +x_147 = x_131; +x_148 = x_153; goto block_152; } else { -lean_object* x_153; -x_153 = lean_alloc_ctor(1, 2, 1); -lean_ctor_set(x_153, 0, x_142); -lean_ctor_set(x_153, 1, x_146); -x_147 = x_153; +lean_inc(x_146); +lean_dec(x_131); +x_147 = lean_box(0); +x_148 = x_153; goto block_152; } block_152: { -uint8_t x_148; lean_object* x_149; -x_148 = lean_unbox(x_98); -lean_dec(x_98); -lean_ctor_set_uint8(x_147, sizeof(void*)*2, x_148); -if (x_144 == 0) +lean_object* x_149; +if (x_148 == 0) { -lean_ctor_set(x_143, 0, x_147); -x_149 = x_143; +x_149 = x_147; goto block_150; } else { lean_object* x_151; -x_151 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_151, 0, x_147); +x_151 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_151, 0, x_146); x_149 = x_151; goto block_150; } @@ -7943,181 +9546,180 @@ return x_149; } } } +} else { -lean_object* x_156; lean_object* x_157; uint8_t x_158; uint8_t x_163; -lean_dec(x_98); -lean_del_object(x_95); -lean_dec_ref(x_94); +lean_object* x_154; lean_object* x_155; uint8_t x_156; uint8_t x_161; +lean_dec(x_106); +lean_del_object(x_103); +lean_dec_ref(x_102); +lean_dec_ref(x_101); lean_dec_ref(x_21); lean_dec_ref(x_18); -x_156 = lean_ctor_get(x_141, 0); -x_163 = !lean_is_exclusive(x_141); -if (x_163 == 0) +lean_dec(x_11); +lean_dec_ref(x_10); +lean_dec(x_9); +lean_dec_ref(x_8); +lean_dec(x_7); +lean_dec_ref(x_6); +lean_dec(x_5); +lean_dec_ref(x_4); +lean_dec(x_3); +x_154 = lean_ctor_get(x_108, 0); +x_161 = !lean_is_exclusive(x_108); +if (x_161 == 0) { -x_157 = x_141; -x_158 = x_163; -goto block_162; -} -else -{ -lean_inc(x_156); -lean_dec(x_141); -x_157 = lean_box(0); -x_158 = x_163; -goto block_162; -} -block_162: -{ -lean_object* x_159; -if (x_158 == 0) -{ -x_159 = x_157; +x_155 = x_108; +x_156 = x_161; goto block_160; } else { -lean_object* x_161; -x_161 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_161, 0, x_156); -x_159 = x_161; +lean_inc(x_154); +lean_dec(x_108); +x_155 = lean_box(0); +x_156 = x_161; goto block_160; } block_160: { -return x_159; +lean_object* x_157; +if (x_156 == 0) +{ +x_157 = x_155; +goto block_158; } +else +{ +lean_object* x_159; +x_159 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_159, 0, x_154); +x_157 = x_159; +goto block_158; +} +block_158: +{ +return x_157; } } } } else { -lean_object* x_164; lean_object* x_165; uint8_t x_166; uint8_t x_171; -lean_dec(x_98); -lean_del_object(x_95); -lean_dec_ref(x_94); -lean_dec_ref(x_93); -lean_dec_ref(x_21); -lean_dec_ref(x_18); +lean_object* x_162; +lean_dec(x_106); +lean_dec_ref(x_101); lean_dec(x_11); lean_dec_ref(x_10); lean_dec(x_9); lean_dec_ref(x_8); lean_dec(x_7); -lean_dec_ref(x_6); lean_dec(x_5); lean_dec_ref(x_4); lean_dec(x_3); -x_164 = lean_ctor_get(x_100, 0); -x_171 = !lean_is_exclusive(x_100); -if (x_171 == 0) +x_162 = l_Lean_Meta_Sym_getBoolTrueExpr___redArg(x_6); +lean_dec_ref(x_6); +if (lean_obj_tag(x_162) == 0) { -x_165 = x_100; -x_166 = x_171; +lean_object* x_163; lean_object* x_164; uint8_t x_165; uint8_t x_175; +x_163 = lean_ctor_get(x_162, 0); +x_175 = !lean_is_exclusive(x_162); +if (x_175 == 0) +{ +x_164 = x_162; +x_165 = x_175; +goto block_174; +} +else +{ +lean_inc(x_163); +lean_dec(x_162); +x_164 = lean_box(0); +x_165 = x_175; +goto block_174; +} +block_174: +{ +lean_object* x_166; lean_object* x_167; lean_object* x_168; +x_166 = lean_obj_once(&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__14, &l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__14_once, _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__14); +x_167 = l_Lean_mkApp3(x_166, x_21, x_18, x_102); +if (x_104 == 0) +{ +lean_ctor_set(x_103, 1, x_167); +lean_ctor_set(x_103, 0, x_163); +x_168 = x_103; +goto block_172; +} +else +{ +lean_object* x_173; +x_173 = lean_alloc_ctor(1, 2, 1); +lean_ctor_set(x_173, 0, x_163); +lean_ctor_set(x_173, 1, x_167); +x_168 = x_173; +goto block_172; +} +block_172: +{ +lean_object* x_169; +lean_ctor_set_uint8(x_168, sizeof(void*)*2, x_1); +if (x_165 == 0) +{ +lean_ctor_set(x_164, 0, x_168); +x_169 = x_164; goto block_170; } else { -lean_inc(x_164); -lean_dec(x_100); -x_165 = lean_box(0); -x_166 = x_171; +lean_object* x_171; +x_171 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_171, 0, x_168); +x_169 = x_171; goto block_170; } block_170: { -lean_object* x_167; -if (x_166 == 0) -{ -x_167 = x_165; -goto block_168; -} -else -{ -lean_object* x_169; -x_169 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_169, 0, x_164); -x_167 = x_169; -goto block_168; -} -block_168: -{ -return x_167; +return x_169; } } } } else { -lean_object* x_172; -lean_dec(x_98); -lean_dec_ref(x_93); -lean_dec(x_11); -lean_dec_ref(x_10); -lean_dec(x_9); -lean_dec_ref(x_8); -lean_dec(x_7); -lean_dec(x_5); -lean_dec_ref(x_4); -lean_dec(x_3); -x_172 = l_Lean_Meta_Sym_getBoolTrueExpr___redArg(x_6); -lean_dec_ref(x_6); -if (lean_obj_tag(x_172) == 0) +lean_object* x_176; lean_object* x_177; uint8_t x_178; uint8_t x_183; +lean_del_object(x_103); +lean_dec_ref(x_102); +lean_dec_ref(x_21); +lean_dec_ref(x_18); +x_176 = lean_ctor_get(x_162, 0); +x_183 = !lean_is_exclusive(x_162); +if (x_183 == 0) { -lean_object* x_173; lean_object* x_174; uint8_t x_175; uint8_t x_185; -x_173 = lean_ctor_get(x_172, 0); -x_185 = !lean_is_exclusive(x_172); -if (x_185 == 0) -{ -x_174 = x_172; -x_175 = x_185; -goto block_184; -} -else -{ -lean_inc(x_173); -lean_dec(x_172); -x_174 = lean_box(0); -x_175 = x_185; -goto block_184; -} -block_184: -{ -lean_object* x_176; lean_object* x_177; lean_object* x_178; -x_176 = lean_obj_once(&l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__16, &l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__16_once, _init_l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__16); -x_177 = l_Lean_mkApp3(x_176, x_21, x_18, x_94); -if (x_96 == 0) -{ -lean_ctor_set(x_95, 1, x_177); -lean_ctor_set(x_95, 0, x_173); -x_178 = x_95; +x_177 = x_162; +x_178 = x_183; goto block_182; } else { -lean_object* x_183; -x_183 = lean_alloc_ctor(1, 2, 1); -lean_ctor_set(x_183, 0, x_173); -lean_ctor_set(x_183, 1, x_177); +lean_inc(x_176); +lean_dec(x_162); +x_177 = lean_box(0); x_178 = x_183; goto block_182; } block_182: { lean_object* x_179; -lean_ctor_set_uint8(x_178, sizeof(void*)*2, x_1); -if (x_175 == 0) +if (x_178 == 0) { -lean_ctor_set(x_174, 0, x_178); -x_179 = x_174; +x_179 = x_177; goto block_180; } else { lean_object* x_181; -x_181 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_181, 0, x_178); +x_181 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_181, 0, x_176); x_179 = x_181; goto block_180; } @@ -8128,59 +9730,13 @@ return x_179; } } } -else -{ -lean_object* x_186; lean_object* x_187; uint8_t x_188; uint8_t x_193; -lean_del_object(x_95); -lean_dec_ref(x_94); -lean_dec_ref(x_21); -lean_dec_ref(x_18); -x_186 = lean_ctor_get(x_172, 0); -x_193 = !lean_is_exclusive(x_172); -if (x_193 == 0) -{ -x_187 = x_172; -x_188 = x_193; -goto block_192; } else { -lean_inc(x_186); -lean_dec(x_172); -x_187 = lean_box(0); -x_188 = x_193; -goto block_192; -} -block_192: -{ -lean_object* x_189; -if (x_188 == 0) -{ -x_189 = x_187; -goto block_190; -} -else -{ -lean_object* x_191; -x_191 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_191, 0, x_186); -x_189 = x_191; -goto block_190; -} -block_190: -{ -return x_189; -} -} -} -} -} -else -{ -lean_object* x_194; lean_object* x_195; uint8_t x_196; uint8_t x_201; -lean_del_object(x_95); -lean_dec_ref(x_94); -lean_dec_ref(x_93); +lean_object* x_184; lean_object* x_185; uint8_t x_186; uint8_t x_191; +lean_del_object(x_103); +lean_dec_ref(x_102); +lean_dec_ref(x_101); lean_dec_ref(x_21); lean_dec_ref(x_18); lean_dec(x_11); @@ -8192,41 +9748,41 @@ lean_dec_ref(x_6); lean_dec(x_5); lean_dec_ref(x_4); lean_dec(x_3); -x_194 = lean_ctor_get(x_97, 0); -x_201 = !lean_is_exclusive(x_97); -if (x_201 == 0) +x_184 = lean_ctor_get(x_105, 0); +x_191 = !lean_is_exclusive(x_105); +if (x_191 == 0) { -x_195 = x_97; -x_196 = x_201; -goto block_200; +x_185 = x_105; +x_186 = x_191; +goto block_190; } else { -lean_inc(x_194); -lean_dec(x_97); -x_195 = lean_box(0); -x_196 = x_201; -goto block_200; +lean_inc(x_184); +lean_dec(x_105); +x_185 = lean_box(0); +x_186 = x_191; +goto block_190; } -block_200: +block_190: { -lean_object* x_197; -if (x_196 == 0) +lean_object* x_187; +if (x_186 == 0) { -x_197 = x_195; -goto block_198; +x_187 = x_185; +goto block_188; } else { -lean_object* x_199; -x_199 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_199, 0, x_194); -x_197 = x_199; -goto block_198; +lean_object* x_189; +x_189 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_189, 0, x_184); +x_187 = x_189; +goto block_188; } -block_198: +block_188: { -return x_197; +return x_187; } } } @@ -8262,12 +9818,12 @@ return x_14; } } } -LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12) { +LEAN_EXPORT lean_object* l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12) { _start: { uint8_t x_13; lean_object* x_14; x_13 = lean_unbox(x_1); -x_14 = l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1(x_13, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +x_14 = l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0(x_13, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); return x_14; } } @@ -8282,7 +9838,7 @@ if (x_14 == 0) { lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; x_15 = lean_box(x_14); -x_16 = lean_alloc_closure((void*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___boxed), 12, 1); +x_16 = lean_alloc_closure((void*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___boxed), 12, 1); lean_closure_set(x_16, 0, x_15); x_17 = lean_nat_sub(x_12, x_13); lean_dec(x_12); @@ -9876,7 +11432,7 @@ x_25 = lean_name_eq(x_13, x_24); if (x_25 == 0) { lean_object* x_26; uint8_t x_27; -x_26 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__1___closed__1)); +x_26 = ((lean_object*)(l_Lean_Meta_Sym_Simp_simpDecideCbv___lam__0___closed__1)); x_27 = lean_name_eq(x_13, x_26); lean_dec(x_13); if (x_27 == 0) @@ -10311,6 +11867,8 @@ lean_object* runtime_initialize_Lean_Meta_AppBuilder(uint8_t builtin); lean_object* runtime_initialize_Init_Sym_Lemmas(uint8_t builtin); lean_object* runtime_initialize_Lean_Meta_Tactic_Cbv_TheoremsLookup(uint8_t builtin); lean_object* runtime_initialize_Lean_Meta_Tactic_Cbv_Opaque(uint8_t builtin); +lean_object* runtime_initialize_Lean_Meta_Tactic_Cbv_CbvEvalExt(uint8_t builtin); +lean_object* runtime_initialize_Lean_Compiler_NoncomputableAttr(uint8_t builtin); static bool _G_runtime_initialized = false; LEAN_EXPORT lean_object* runtime_initialize_Lean_Meta_Tactic_Cbv_ControlFlow(uint8_t builtin) { lean_object * res; @@ -10372,6 +11930,14 @@ res = runtime_initialize_Lean_Meta_Tactic_Cbv_Opaque(builtin) ; if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +res = runtime_initialize_Lean_Meta_Tactic_Cbv_CbvEvalExt(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = runtime_initialize_Lean_Compiler_NoncomputableAttr(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); return lean_io_result_mk_ok(lean_box(0)); } static bool _G_meta_initialized = false; @@ -10395,6 +11961,8 @@ lean_object* initialize_Lean_Meta_AppBuilder(uint8_t builtin); lean_object* initialize_Init_Sym_Lemmas(uint8_t builtin); lean_object* initialize_Lean_Meta_Tactic_Cbv_TheoremsLookup(uint8_t builtin); lean_object* initialize_Lean_Meta_Tactic_Cbv_Opaque(uint8_t builtin); +lean_object* initialize_Lean_Meta_Tactic_Cbv_CbvEvalExt(uint8_t builtin); +lean_object* initialize_Lean_Compiler_NoncomputableAttr(uint8_t builtin); static bool _G_initialized = false; LEAN_EXPORT lean_object* initialize_Lean_Meta_Tactic_Cbv_ControlFlow(uint8_t builtin) { lean_object * res; @@ -10456,6 +12024,14 @@ res = initialize_Lean_Meta_Tactic_Cbv_Opaque(builtin) ; if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +res = initialize_Lean_Meta_Tactic_Cbv_CbvEvalExt(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Lean_Compiler_NoncomputableAttr(builtin) +; +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); res = runtime_initialize_Lean_Meta_Tactic_Cbv_ControlFlow(builtin) ; if (lean_io_result_is_error(res)) return res; diff --git a/stage0/stdlib/Lean/Parser/Module.c b/stage0/stdlib/Lean/Parser/Module.c index e58a2e9709..68eb2407bc 100644 --- a/stage0/stdlib/Lean/Parser/Module.c +++ b/stage0/stdlib/Lean/Parser/Module.c @@ -61,6 +61,9 @@ lean_object* lean_string_append(lean_object*, lean_object*); uint8_t l_Lean_Syntax_isMissing(lean_object*); lean_object* l_Lean_Syntax_getRange_x3f(lean_object*, uint8_t); LEAN_EXPORT lean_object* l___private_Lean_Parser_Module_0__Lean_Parser_mkErrorMessage(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Syntax_getHeadInfo_x3f(lean_object*); +lean_object* l_Lean_Syntax_setHeadInfo(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Parser_Module_0__Lean_Parser_setStartOfFileLeading(lean_object*); uint8_t l_Lean_Parser_instBEqError_beq(lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Option_instBEq_beq___at___00Lean_Parser_parseHeader_spec__0(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Option_instBEq_beq___at___00Lean_Parser_parseHeader_spec__0___boxed(lean_object*, lean_object*); @@ -181,32 +184,29 @@ uint8_t l_Lean_Parser_SyntaxStack_isEmpty(lean_object*); lean_object* l_Lean_Parser_SyntaxStack_back(lean_object*); LEAN_EXPORT lean_object* l_Lean_Parser_parseHeader(lean_object*); LEAN_EXPORT lean_object* l_Lean_Parser_parseHeader___boxed(lean_object*, lean_object*); -lean_object* lean_string_utf8_byte_size(lean_object*); -static lean_once_cell_t l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__0_once = LEAN_ONCE_CELL_INITIALIZER; -static lean_object* l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__0; -static lean_once_cell_t l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__1_once = LEAN_ONCE_CELL_INITIALIZER; -static lean_object* l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__1; -static const lean_string_object l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "Command"}; +static const lean_string_object l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "Command"}; +static const lean_object* l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__0 = (const lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__0_value; +static const lean_string_object l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 4, .m_capacity = 4, .m_length = 3, .m_data = "eoi"}; +static const lean_object* l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__1 = (const lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__1_value; +static const lean_ctor_object l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__2_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__0_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; +static const lean_ctor_object l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__2_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__2_value_aux_0),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__1_value),LEAN_SCALAR_PTR_LITERAL(103, 136, 125, 166, 167, 98, 71, 111)}}; +static const lean_ctor_object l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__2_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__2_value_aux_1),((lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__0_value),LEAN_SCALAR_PTR_LITERAL(214, 208, 105, 11, 221, 56, 173, 240)}}; +static const lean_ctor_object l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__2_value_aux_2),((lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__1_value),LEAN_SCALAR_PTR_LITERAL(26, 206, 8, 118, 9, 188, 233, 7)}}; static const lean_object* l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__2 = (const lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__2_value; -static const lean_string_object l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 4, .m_capacity = 4, .m_length = 3, .m_data = "eoi"}; -static const lean_object* l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__3 = (const lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__3_value; -static const lean_ctor_object l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__4_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__0_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; -static const lean_ctor_object l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__4_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__4_value_aux_0),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__1_value),LEAN_SCALAR_PTR_LITERAL(103, 136, 125, 166, 167, 98, 71, 111)}}; -static const lean_ctor_object l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__4_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__4_value_aux_1),((lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__2_value),LEAN_SCALAR_PTR_LITERAL(214, 208, 105, 11, 221, 56, 173, 240)}}; -static const lean_ctor_object l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__4_value_aux_2),((lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__3_value),LEAN_SCALAR_PTR_LITERAL(26, 206, 8, 118, 9, 188, 233, 7)}}; -static const lean_object* l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__4 = (const lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__4_value; lean_object* lean_array_push(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI(lean_object*); +uint8_t lean_nat_dec_le(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___boxed(lean_object*, lean_object*); static const lean_string_object l_Lean_Parser_isTerminalCommand___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 5, .m_capacity = 5, .m_length = 4, .m_data = "exit"}; static const lean_object* l_Lean_Parser_isTerminalCommand___closed__0 = (const lean_object*)&l_Lean_Parser_isTerminalCommand___closed__0_value; static const lean_ctor_object l_Lean_Parser_isTerminalCommand___closed__1_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__0_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; static const lean_ctor_object l_Lean_Parser_isTerminalCommand___closed__1_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Parser_isTerminalCommand___closed__1_value_aux_0),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__1_value),LEAN_SCALAR_PTR_LITERAL(103, 136, 125, 166, 167, 98, 71, 111)}}; -static const lean_ctor_object l_Lean_Parser_isTerminalCommand___closed__1_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Parser_isTerminalCommand___closed__1_value_aux_1),((lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__2_value),LEAN_SCALAR_PTR_LITERAL(214, 208, 105, 11, 221, 56, 173, 240)}}; +static const lean_ctor_object l_Lean_Parser_isTerminalCommand___closed__1_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Parser_isTerminalCommand___closed__1_value_aux_1),((lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__0_value),LEAN_SCALAR_PTR_LITERAL(214, 208, 105, 11, 221, 56, 173, 240)}}; static const lean_ctor_object l_Lean_Parser_isTerminalCommand___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Parser_isTerminalCommand___closed__1_value_aux_2),((lean_object*)&l_Lean_Parser_isTerminalCommand___closed__0_value),LEAN_SCALAR_PTR_LITERAL(215, 245, 50, 125, 205, 155, 109, 0)}}; static const lean_object* l_Lean_Parser_isTerminalCommand___closed__1 = (const lean_object*)&l_Lean_Parser_isTerminalCommand___closed__1_value; static const lean_ctor_object l_Lean_Parser_isTerminalCommand___closed__2_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__0_value),LEAN_SCALAR_PTR_LITERAL(70, 193, 83, 126, 233, 67, 208, 165)}}; static const lean_ctor_object l_Lean_Parser_isTerminalCommand___closed__2_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Parser_isTerminalCommand___closed__2_value_aux_0),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__1_value),LEAN_SCALAR_PTR_LITERAL(103, 136, 125, 166, 167, 98, 71, 111)}}; -static const lean_ctor_object l_Lean_Parser_isTerminalCommand___closed__2_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Parser_isTerminalCommand___closed__2_value_aux_1),((lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__2_value),LEAN_SCALAR_PTR_LITERAL(214, 208, 105, 11, 221, 56, 173, 240)}}; +static const lean_ctor_object l_Lean_Parser_isTerminalCommand___closed__2_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Parser_isTerminalCommand___closed__2_value_aux_1),((lean_object*)&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__0_value),LEAN_SCALAR_PTR_LITERAL(214, 208, 105, 11, 221, 56, 173, 240)}}; static const lean_ctor_object l_Lean_Parser_isTerminalCommand___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Parser_isTerminalCommand___closed__2_value_aux_2),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__3_value),LEAN_SCALAR_PTR_LITERAL(36, 144, 26, 198, 154, 96, 74, 167)}}; static const lean_object* l_Lean_Parser_isTerminalCommand___closed__2 = (const lean_object*)&l_Lean_Parser_isTerminalCommand___closed__2_value; LEAN_EXPORT uint8_t l_Lean_Parser_isTerminalCommand(lean_object*); @@ -254,7 +254,6 @@ LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_foldlMUnsafe LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_foldlMUnsafe_fold___at___00Lean_PersistentArray_forM___at___00Lean_MessageLog_forM___at___00__private_Lean_Parser_Module_0__Lean_Parser_testParseModuleAux_parse_spec__1_spec__2_spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); -uint8_t lean_nat_dec_le(lean_object*, lean_object*); size_t lean_usize_of_nat(lean_object*); LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_foldlMUnsafe_fold___at___00__private_Lean_Data_PersistentArray_0__Lean_PersistentArray_forFromMAux___at___00Lean_PersistentArray_forM___at___00Lean_MessageLog_forM___at___00__private_Lean_Parser_Module_0__Lean_Parser_testParseModuleAux_parse_spec__1_spec__2_spec__3_spec__5(lean_object*, lean_object*, size_t, size_t, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentArray_forMAux___at___00__private_Lean_Data_PersistentArray_0__Lean_PersistentArray_forFromMAux___at___00Lean_PersistentArray_forM___at___00Lean_MessageLog_forM___at___00__private_Lean_Parser_Module_0__Lean_Parser_testParseModuleAux_parse_spec__1_spec__2_spec__3_spec__4(lean_object*, lean_object*); @@ -296,9 +295,9 @@ static const lean_ctor_object l_Lean_Parser_testParseModule___closed__2_value_au static const lean_ctor_object l_Lean_Parser_testParseModule___closed__2_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Parser_testParseModule___closed__2_value_aux_1),((lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__2_value),LEAN_SCALAR_PTR_LITERAL(239, 68, 245, 129, 233, 83, 45, 77)}}; static const lean_ctor_object l_Lean_Parser_testParseModule___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Parser_testParseModule___closed__2_value_aux_2),((lean_object*)&l_Lean_Parser_testParseModule___closed__1_value),LEAN_SCALAR_PTR_LITERAL(59, 203, 142, 146, 93, 76, 229, 9)}}; static const lean_object* l_Lean_Parser_testParseModule___closed__2 = (const lean_object*)&l_Lean_Parser_testParseModule___closed__2_value; +lean_object* lean_string_utf8_byte_size(lean_object*); lean_object* l_Lean_Parser_mkInputContext___redArg(lean_object*, lean_object*, uint8_t, lean_object*); lean_object* l_Lean_mkListNode(lean_object*); -lean_object* l_Lean_Syntax_updateLeading(lean_object*); LEAN_EXPORT lean_object* l_Lean_Parser_testParseModule(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Parser_testParseModule___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_IO_FS_readFile(lean_object*); @@ -629,7 +628,7 @@ lean_object* x_40; lean_object* x_41; x_40 = lean_alloc_ctor(0, 3, 0); lean_ctor_set(x_40, 0, x_38); lean_ctor_set(x_40, 1, x_39); -lean_ctor_set(x_40, 2, x_37); +lean_ctor_set(x_40, 2, x_35); x_41 = l___private_Lean_Parser_Module_0__Lean_Parser_mkErrorMessage_lastTrailing(x_3); if (lean_obj_tag(x_41) == 1) { @@ -648,7 +647,7 @@ if (x_45 == 0) { lean_dec(x_43); x_18 = x_40; -x_19 = x_35; +x_19 = x_37; x_20 = x_36; goto block_34; } @@ -656,7 +655,7 @@ else { lean_dec(x_36); x_18 = x_40; -x_19 = x_35; +x_19 = x_37; x_20 = x_43; goto block_34; } @@ -665,7 +664,7 @@ else { lean_dec(x_41); x_18 = x_40; -x_19 = x_35; +x_19 = x_37; x_20 = x_36; goto block_34; } @@ -677,9 +676,9 @@ case 3: { lean_object* x_51; x_51 = ((lean_object*)(l___private_Lean_Parser_Module_0__Lean_Parser_mkErrorMessage___closed__1)); -x_35 = x_49; +x_35 = x_48; x_36 = x_50; -x_37 = x_48; +x_37 = x_49; x_38 = x_47; x_39 = x_51; goto block_46; @@ -692,9 +691,9 @@ x_53 = ((lean_object*)(l___private_Lean_Parser_Module_0__Lean_Parser_mkErrorMess x_54 = lean_string_append(x_53, x_52); x_55 = ((lean_object*)(l___private_Lean_Parser_Module_0__Lean_Parser_mkErrorMessage___closed__3)); x_56 = lean_string_append(x_54, x_55); -x_35 = x_49; +x_35 = x_48; x_36 = x_50; -x_37 = x_48; +x_37 = x_49; x_38 = x_47; x_39 = x_56; goto block_46; @@ -703,9 +702,9 @@ default: { lean_object* x_57; x_57 = ((lean_object*)(l___private_Lean_Parser_Module_0__Lean_Parser_mkErrorMessage___closed__4)); -x_35 = x_49; +x_35 = x_48; x_36 = x_50; -x_37 = x_48; +x_37 = x_49; x_38 = x_47; x_39 = x_57; goto block_46; @@ -714,6 +713,144 @@ goto block_46; } } } +LEAN_EXPORT lean_object* l___private_Lean_Parser_Module_0__Lean_Parser_setStartOfFileLeading(lean_object* x_1) { +_start: +{ +lean_object* x_6; +x_6 = l_Lean_Syntax_getHeadInfo_x3f(x_1); +if (lean_obj_tag(x_6) == 1) +{ +lean_object* x_7; +x_7 = lean_ctor_get(x_6, 0); +lean_inc(x_7); +lean_dec_ref(x_6); +if (lean_obj_tag(x_7) == 0) +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; uint8_t x_33; +x_8 = lean_ctor_get(x_7, 0); +x_9 = lean_ctor_get(x_7, 1); +x_10 = lean_ctor_get(x_7, 2); +x_11 = lean_ctor_get(x_7, 3); +x_33 = !lean_is_exclusive(x_7); +if (x_33 == 0) +{ +x_12 = x_7; +x_13 = x_33; +goto block_32; +} +else +{ +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_dec(x_7); +x_12 = lean_box(0); +x_13 = x_33; +goto block_32; +} +block_32: +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; uint8_t x_30; +x_14 = lean_ctor_get(x_8, 0); +x_15 = lean_ctor_get(x_8, 2); +x_30 = !lean_is_exclusive(x_8); +if (x_30 == 0) +{ +lean_object* x_31; +x_31 = lean_ctor_get(x_8, 1); +lean_dec(x_31); +x_16 = x_8; +x_17 = x_30; +goto block_29; +} +else +{ +lean_inc(x_15); +lean_inc(x_14); +lean_dec(x_8); +x_16 = lean_box(0); +x_17 = x_30; +goto block_29; +} +block_29: +{ +lean_object* x_18; lean_object* x_19; +x_18 = lean_unsigned_to_nat(0u); +if (x_17 == 0) +{ +lean_ctor_set(x_16, 1, x_18); +x_19 = x_16; +goto block_27; +} +else +{ +lean_object* x_28; +x_28 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_28, 0, x_14); +lean_ctor_set(x_28, 1, x_18); +lean_ctor_set(x_28, 2, x_15); +x_19 = x_28; +goto block_27; +} +block_27: +{ +lean_object* x_20; +if (x_13 == 0) +{ +lean_ctor_set(x_12, 0, x_19); +x_20 = x_12; +goto block_25; +} +else +{ +lean_object* x_26; +x_26 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_26, 0, x_19); +lean_ctor_set(x_26, 1, x_9); +lean_ctor_set(x_26, 2, x_10); +lean_ctor_set(x_26, 3, x_11); +x_20 = x_26; +goto block_25; +} +block_25: +{ +lean_object* x_21; uint8_t x_22; lean_object* x_23; lean_object* x_24; +x_21 = l_Lean_Syntax_setHeadInfo(x_1, x_20); +x_22 = 1; +x_23 = lean_box(x_22); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_21); +lean_ctor_set(x_24, 1, x_23); +return x_24; +} +} +} +} +} +else +{ +lean_dec(x_7); +goto block_5; +} +} +else +{ +lean_dec(x_6); +goto block_5; +} +block_5: +{ +uint8_t x_2; lean_object* x_3; lean_object* x_4; +x_2 = 0; +x_3 = lean_box(x_2); +x_4 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_4, 0, x_1); +lean_ctor_set(x_4, 1, x_3); +return x_4; +} +} +} LEAN_EXPORT uint8_t l_Option_instBEq_beq___at___00Lean_Parser_parseHeader_spec__0(lean_object* x_1, lean_object* x_2) { _start: { @@ -839,14 +976,14 @@ goto block_22; block_15: { lean_object* x_10; lean_object* x_11; uint8_t x_12; lean_object* x_13; lean_object* x_14; -x_10 = l_Lean_FileMap_toPosition(x_6, x_9); +x_10 = l_Lean_FileMap_toPosition(x_8, x_9); lean_dec(x_9); x_11 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_11, 0, x_10); x_12 = 2; x_13 = ((lean_object*)(l___private_Lean_Parser_Module_0__Lean_Parser_mkErrorMessage___closed__0)); x_14 = lean_alloc_ctor(0, 5, 3); -lean_ctor_set(x_14, 0, x_8); +lean_ctor_set(x_14, 0, x_6); lean_ctor_set(x_14, 1, x_7); lean_ctor_set(x_14, 2, x_11); lean_ctor_set(x_14, 3, x_13); @@ -869,9 +1006,9 @@ x_19 = l_Lean_FileMap_toPosition(x_18, x_16); x_20 = l_Lean_Syntax_getTailPos_x3f(x_3, x_5); if (lean_obj_tag(x_20) == 0) { -x_6 = x_18; +x_6 = x_17; x_7 = x_19; -x_8 = x_17; +x_8 = x_18; x_9 = x_16; goto block_15; } @@ -882,9 +1019,9 @@ lean_dec(x_16); x_21 = lean_ctor_get(x_20, 0); lean_inc(x_21); lean_dec_ref(x_20); -x_6 = x_18; +x_6 = x_17; x_7 = x_19; -x_8 = x_17; +x_8 = x_18; x_9 = x_21; goto block_15; } @@ -955,7 +1092,7 @@ goto block_12; } else { -lean_object* x_18; lean_object* x_19; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_33; lean_object* x_34; uint8_t x_35; lean_object* x_36; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_87; lean_object* x_98; uint8_t x_99; +lean_object* x_18; lean_object* x_19; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_87; lean_object* x_98; uint8_t x_99; x_58 = lean_unsigned_to_nat(0u); x_73 = lean_unsigned_to_nat(1u); x_98 = l_Lean_Syntax_getArg(x_16, x_58); @@ -1030,78 +1167,78 @@ goto block_12; } block_32: { -if (lean_obj_tag(x_25) == 1) +if (lean_obj_tag(x_26) == 1) { lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_28 = lean_ctor_get(x_25, 0); +x_28 = lean_ctor_get(x_26, 0); lean_inc(x_28); -lean_dec_ref(x_25); +lean_dec_ref(x_26); x_29 = lean_obj_once(&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__10, &l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__10_once, _init_l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__10); lean_inc_ref(x_1); x_30 = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___lam__0(x_17, x_1, x_28, x_29); lean_dec(x_28); x_31 = l_Lean_MessageLog_add(x_30, x_27); -x_18 = x_26; +x_18 = x_25; x_19 = x_31; goto block_24; } else { -lean_dec(x_25); -x_18 = x_26; +lean_dec(x_26); +x_18 = x_25; x_19 = x_27; goto block_24; } } block_57: { -if (lean_obj_tag(x_34) == 1) +if (lean_obj_tag(x_35) == 1) { -if (lean_obj_tag(x_36) == 0) +if (lean_obj_tag(x_34) == 0) { -lean_dec_ref(x_34); -lean_dec(x_33); +lean_dec_ref(x_35); +lean_dec(x_36); x_8 = x_6; goto block_12; } else { lean_object* x_37; uint8_t x_38; uint8_t x_55; -x_55 = !lean_is_exclusive(x_36); +x_55 = !lean_is_exclusive(x_34); if (x_55 == 0) { lean_object* x_56; -x_56 = lean_ctor_get(x_36, 0); +x_56 = lean_ctor_get(x_34, 0); lean_dec(x_56); -x_37 = x_36; +x_37 = x_34; x_38 = x_55; goto block_54; } else { -lean_dec(x_36); +lean_dec(x_34); x_37 = lean_box(0); x_38 = x_55; goto block_54; } block_54: { -if (x_35 == 0) +if (x_33 == 0) { lean_del_object(x_37); -lean_dec_ref(x_34); -lean_dec(x_33); +lean_dec_ref(x_35); +lean_dec(x_36); x_8 = x_6; goto block_12; } else { lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_39 = lean_ctor_get(x_34, 0); +x_39 = lean_ctor_get(x_35, 0); lean_inc(x_39); -lean_dec_ref(x_34); +lean_dec_ref(x_35); x_40 = ((lean_object*)(l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__11)); -x_41 = l_Lean_Name_toStringWithToken___at___00Lean_Name_toString_spec__0(x_33, x_35); +x_41 = l_Lean_Name_toStringWithToken___at___00Lean_Name_toString_spec__0(x_36, x_33); x_42 = lean_string_append(x_40, x_41); x_43 = ((lean_object*)(l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__12)); x_44 = lean_string_append(x_42, x_43); @@ -1142,8 +1279,8 @@ goto block_12; else { lean_dec(x_36); +lean_dec(x_35); lean_dec(x_34); -lean_dec(x_33); x_8 = x_6; goto block_12; } @@ -1173,37 +1310,37 @@ if (lean_obj_tag(x_2) == 0) { if (x_64 == 0) { -lean_dec(x_59); -x_33 = x_67; -x_34 = x_61; -x_35 = x_64; -x_36 = x_60; +lean_dec(x_60); +x_33 = x_64; +x_34 = x_59; +x_35 = x_61; +x_36 = x_67; goto block_57; } else { lean_dec(x_67); -if (lean_obj_tag(x_60) == 1) +if (lean_obj_tag(x_59) == 1) { lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; -x_68 = lean_ctor_get(x_60, 0); +x_68 = lean_ctor_get(x_59, 0); lean_inc(x_68); -lean_dec_ref(x_60); +lean_dec_ref(x_59); x_69 = lean_obj_once(&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__16, &l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__16_once, _init_l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__16); lean_inc_ref(x_1); x_70 = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___lam__0(x_17, x_1, x_68, x_69); lean_dec(x_68); x_71 = l_Lean_MessageLog_add(x_70, x_6); -x_25 = x_59; -x_26 = x_61; +x_25 = x_61; +x_26 = x_60; x_27 = x_71; goto block_32; } else { -lean_dec(x_60); -x_25 = x_59; -x_26 = x_61; +lean_dec(x_59); +x_25 = x_61; +x_26 = x_60; x_27 = x_6; goto block_32; } @@ -1211,11 +1348,11 @@ goto block_32; } else { -lean_dec(x_59); -x_33 = x_67; -x_34 = x_61; -x_35 = x_64; -x_36 = x_60; +lean_dec(x_60); +x_33 = x_64; +x_34 = x_59; +x_35 = x_61; +x_36 = x_67; goto block_57; } } @@ -1262,8 +1399,8 @@ x_83 = l_Lean_Syntax_getArg(x_80, x_58); lean_dec(x_80); x_84 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_84, 0, x_83); -x_59 = x_75; -x_60 = x_74; +x_59 = x_74; +x_60 = x_75; x_61 = x_84; goto block_72; } @@ -1274,8 +1411,8 @@ else lean_object* x_85; lean_dec(x_77); x_85 = lean_box(0); -x_59 = x_75; -x_60 = x_74; +x_59 = x_74; +x_60 = x_75; x_61 = x_85; goto block_72; } @@ -1412,49 +1549,49 @@ x_3 = 0; x_4 = lean_mk_empty_environment(x_3); if (lean_obj_tag(x_4) == 0) { -lean_object* x_5; lean_object* x_6; uint8_t x_7; uint8_t x_119; +lean_object* x_5; lean_object* x_6; uint8_t x_7; uint8_t x_132; x_5 = lean_ctor_get(x_4, 0); -x_119 = !lean_is_exclusive(x_4); -if (x_119 == 0) +x_132 = !lean_is_exclusive(x_4); +if (x_132 == 0) { x_6 = x_4; -x_7 = x_119; -goto block_118; +x_7 = x_132; +goto block_131; } else { lean_inc(x_5); lean_dec(x_4); x_6 = lean_box(0); -x_7 = x_119; -goto block_118; +x_7 = x_132; +goto block_131; } -block_118: +block_131: { -lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; uint8_t x_116; +lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; uint8_t x_129; x_8 = l_Lean_Parser_Module_header; x_9 = lean_ctor_get(x_8, 1); -x_116 = !lean_is_exclusive(x_8); -if (x_116 == 0) +x_129 = !lean_is_exclusive(x_8); +if (x_129 == 0) { -lean_object* x_117; -x_117 = lean_ctor_get(x_8, 0); -lean_dec(x_117); +lean_object* x_130; +x_130 = lean_ctor_get(x_8, 0); +lean_dec(x_130); x_10 = x_8; -x_11 = x_116; -goto block_115; +x_11 = x_129; +goto block_128; } else { lean_inc(x_9); lean_dec(x_8); x_10 = lean_box(0); -x_11 = x_116; -goto block_115; +x_11 = x_129; +goto block_128; } -block_115: +block_128: { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t x_28; lean_object* x_38; lean_object* x_39; lean_object* x_45; lean_object* x_46; size_t x_47; lean_object* x_48; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; size_t x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_81; uint8_t x_112; +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; uint8_t x_26; lean_object* x_27; lean_object* x_28; uint8_t x_29; uint8_t x_39; lean_object* x_40; lean_object* x_41; uint8_t x_42; lean_object* x_46; lean_object* x_47; size_t x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_77; size_t x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_94; uint8_t x_125; x_12 = lean_ctor_get(x_1, 0); lean_inc(x_5); x_13 = l_Lean_Parser_getTokenTable(x_5); @@ -1480,415 +1617,451 @@ x_24 = lean_ctor_get(x_22, 2); lean_inc(x_24); x_25 = lean_ctor_get(x_22, 4); lean_inc(x_25); -x_64 = lean_unsigned_to_nat(0u); -x_112 = l_Lean_Parser_SyntaxStack_isEmpty(x_23); -if (x_112 == 0) +x_77 = lean_unsigned_to_nat(0u); +x_125 = l_Lean_Parser_SyntaxStack_isEmpty(x_23); +if (x_125 == 0) { -lean_object* x_113; -x_113 = l_Lean_Parser_SyntaxStack_back(x_23); +lean_object* x_126; +x_126 = l_Lean_Parser_SyntaxStack_back(x_23); lean_dec_ref(x_23); -x_81 = x_113; -goto block_111; +x_94 = x_126; +goto block_124; } else { -lean_object* x_114; +lean_object* x_127; lean_dec_ref(x_23); -x_114 = lean_box(0); -x_81 = x_114; -goto block_111; +x_127 = lean_box(0); +x_94 = x_127; +goto block_124; } -block_37: +block_38: { -lean_object* x_29; lean_object* x_30; -x_29 = lean_alloc_ctor(0, 1, 1); -lean_ctor_set(x_29, 0, x_24); -lean_ctor_set_uint8(x_29, sizeof(void*)*1, x_28); +lean_object* x_30; lean_object* x_31; +x_30 = lean_alloc_ctor(0, 1, 2); +lean_ctor_set(x_30, 0, x_24); +lean_ctor_set_uint8(x_30, sizeof(void*)*1, x_26); +lean_ctor_set_uint8(x_30, sizeof(void*)*1 + 1, x_29); if (x_11 == 0) { -lean_ctor_set(x_10, 1, x_26); -lean_ctor_set(x_10, 0, x_29); -x_30 = x_10; -goto block_35; +lean_ctor_set(x_10, 1, x_27); +lean_ctor_set(x_10, 0, x_30); +x_31 = x_10; +goto block_36; } else { -lean_object* x_36; -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_29); -lean_ctor_set(x_36, 1, x_26); -x_30 = x_36; -goto block_35; +lean_object* x_37; +x_37 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_37, 0, x_30); +lean_ctor_set(x_37, 1, x_27); +x_31 = x_37; +goto block_36; } -block_35: +block_36: { -lean_object* x_31; lean_object* x_32; -x_31 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_31, 0, x_27); -lean_ctor_set(x_31, 1, x_30); +lean_object* x_32; lean_object* x_33; +x_32 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_32, 0, x_28); +lean_ctor_set(x_32, 1, x_31); if (x_7 == 0) { -lean_ctor_set(x_6, 0, x_31); -x_32 = x_6; -goto block_33; +lean_ctor_set(x_6, 0, x_32); +x_33 = x_6; +goto block_34; } else { -lean_object* x_34; -x_34 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_34, 0, x_31); -x_32 = x_34; -goto block_33; +lean_object* x_35; +x_35 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_35, 0, x_32); +x_33 = x_35; +goto block_34; } -block_33: +block_34: { -return x_32; +return x_33; } } } -block_44: +block_45: { -lean_object* x_40; uint8_t x_41; -x_40 = lean_box(0); -x_41 = l_Option_instBEq_beq___at___00Lean_Parser_parseHeader_spec__0(x_25, x_40); -if (x_41 == 0) -{ -uint8_t x_42; -x_42 = 1; -x_26 = x_39; -x_27 = x_38; -x_28 = x_42; -goto block_37; -} -else +if (x_39 == 0) { uint8_t x_43; -x_43 = 0; -x_26 = x_39; -x_27 = x_38; -x_28 = x_43; -goto block_37; -} -} -block_63: -{ -lean_object* x_49; lean_object* x_50; lean_object* x_51; size_t x_52; lean_object* x_53; -x_49 = lean_unsigned_to_nat(2u); -x_50 = l_Lean_Syntax_getArg(x_48, x_49); -x_51 = l_Lean_Syntax_getArgs(x_50); -lean_dec(x_50); -x_52 = lean_array_size(x_51); -x_53 = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2(x_1, x_46, x_51, x_52, x_47, x_45); -lean_dec_ref(x_51); -lean_dec(x_46); -if (lean_obj_tag(x_53) == 0) -{ -lean_object* x_54; -x_54 = lean_ctor_get(x_53, 0); -lean_inc(x_54); -lean_dec_ref(x_53); -x_38 = x_48; -x_39 = x_54; -goto block_44; +x_43 = 1; +x_26 = x_42; +x_27 = x_40; +x_28 = x_41; +x_29 = x_43; +goto block_38; } else { -lean_object* x_55; lean_object* x_56; uint8_t x_57; uint8_t x_62; -lean_dec(x_48); +uint8_t x_44; +x_44 = 0; +x_26 = x_42; +x_27 = x_40; +x_28 = x_41; +x_29 = x_44; +goto block_38; +} +} +block_57: +{ +lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; uint8_t x_52; +x_48 = l___private_Lean_Parser_Module_0__Lean_Parser_setStartOfFileLeading(x_46); +x_49 = lean_ctor_get(x_48, 0); +lean_inc(x_49); +x_50 = lean_ctor_get(x_48, 1); +lean_inc(x_50); +lean_dec_ref(x_48); +x_51 = lean_box(0); +x_52 = l_Option_instBEq_beq___at___00Lean_Parser_parseHeader_spec__0(x_25, x_51); +if (x_52 == 0) +{ +uint8_t x_53; uint8_t x_54; +x_53 = 1; +x_54 = lean_unbox(x_50); +lean_dec(x_50); +x_39 = x_54; +x_40 = x_47; +x_41 = x_49; +x_42 = x_53; +goto block_45; +} +else +{ +uint8_t x_55; uint8_t x_56; +x_55 = 0; +x_56 = lean_unbox(x_50); +lean_dec(x_50); +x_39 = x_56; +x_40 = x_47; +x_41 = x_49; +x_42 = x_55; +goto block_45; +} +} +block_76: +{ +lean_object* x_62; lean_object* x_63; lean_object* x_64; size_t x_65; lean_object* x_66; +x_62 = lean_unsigned_to_nat(2u); +x_63 = l_Lean_Syntax_getArg(x_61, x_62); +x_64 = l_Lean_Syntax_getArgs(x_63); +lean_dec(x_63); +x_65 = lean_array_size(x_64); +x_66 = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2(x_1, x_60, x_64, x_65, x_58, x_59); +lean_dec_ref(x_64); +lean_dec(x_60); +if (lean_obj_tag(x_66) == 0) +{ +lean_object* x_67; +x_67 = lean_ctor_get(x_66, 0); +lean_inc(x_67); +lean_dec_ref(x_66); +x_46 = x_61; +x_47 = x_67; +goto block_57; +} +else +{ +lean_object* x_68; lean_object* x_69; uint8_t x_70; uint8_t x_75; +lean_dec(x_61); lean_dec(x_25); lean_dec(x_24); lean_del_object(x_10); lean_del_object(x_6); -x_55 = lean_ctor_get(x_53, 0); -x_62 = !lean_is_exclusive(x_53); -if (x_62 == 0) -{ -x_56 = x_53; -x_57 = x_62; -goto block_61; -} -else -{ -lean_inc(x_55); -lean_dec(x_53); -x_56 = lean_box(0); -x_57 = x_62; -goto block_61; -} -block_61: -{ -lean_object* x_58; -if (x_57 == 0) -{ -x_58 = x_56; -goto block_59; -} -else -{ -lean_object* x_60; -x_60 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_60, 0, x_55); -x_58 = x_60; -goto block_59; -} -block_59: -{ -return x_58; -} -} -} -} -block_80: -{ -lean_object* x_72; lean_object* x_73; uint8_t x_74; -x_72 = lean_unsigned_to_nat(1u); -x_73 = l_Lean_Syntax_getArg(x_69, x_72); -x_74 = l_Lean_Syntax_isNone(x_73); -if (x_74 == 0) -{ -uint8_t x_75; -lean_inc(x_73); -x_75 = l_Lean_Syntax_matchesNull(x_73, x_72); +x_68 = lean_ctor_get(x_66, 0); +x_75 = !lean_is_exclusive(x_66); if (x_75 == 0) { -lean_dec(x_73); -lean_dec(x_71); -lean_dec_ref(x_70); -lean_dec_ref(x_67); -lean_dec_ref(x_65); -lean_dec_ref(x_1); -x_38 = x_69; -x_39 = x_66; -goto block_44; +x_69 = x_66; +x_70 = x_75; +goto block_74; } else { -lean_object* x_76; lean_object* x_77; lean_object* x_78; uint8_t x_79; -x_76 = l_Lean_Syntax_getArg(x_73, x_64); -lean_dec(x_73); -x_77 = ((lean_object*)(l_Lean_Parser_parseHeader___closed__1)); -x_78 = l_Lean_Name_mkStr4(x_70, x_67, x_65, x_77); -x_79 = l_Lean_Syntax_isOfKind(x_76, x_78); -lean_dec(x_78); -if (x_79 == 0) +lean_inc(x_68); +lean_dec(x_66); +x_69 = lean_box(0); +x_70 = x_75; +goto block_74; +} +block_74: { -lean_dec(x_71); -lean_dec_ref(x_1); -x_38 = x_69; -x_39 = x_66; -goto block_44; +lean_object* x_71; +if (x_70 == 0) +{ +x_71 = x_69; +goto block_72; } else { -x_45 = x_66; -x_46 = x_71; -x_47 = x_68; -x_48 = x_69; -goto block_63; +lean_object* x_73; +x_73 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_73, 0, x_68); +x_71 = x_73; +goto block_72; } -} -} -else +block_72: { -lean_dec(x_73); -lean_dec_ref(x_70); -lean_dec_ref(x_67); -lean_dec_ref(x_65); -x_45 = x_66; -x_46 = x_71; -x_47 = x_68; -x_48 = x_69; -goto block_63; +return x_71; } } -block_111: +} +} +block_93: { -lean_object* x_82; lean_object* x_83; size_t x_84; size_t x_85; lean_object* x_86; -x_82 = lean_obj_once(&l_Lean_Parser_parseHeader___closed__4, &l_Lean_Parser_parseHeader___closed__4_once, _init_l_Lean_Parser_parseHeader___closed__4); -x_83 = l_Lean_Parser_ParserState_allErrors(x_22); -x_84 = lean_array_size(x_83); -x_85 = 0; -lean_inc_ref(x_1); -x_86 = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__1(x_1, x_83, x_84, x_85, x_82); +lean_object* x_85; lean_object* x_86; uint8_t x_87; +x_85 = lean_unsigned_to_nat(1u); +x_86 = l_Lean_Syntax_getArg(x_80, x_85); +x_87 = l_Lean_Syntax_isNone(x_86); +if (x_87 == 0) +{ +uint8_t x_88; +lean_inc(x_86); +x_88 = l_Lean_Syntax_matchesNull(x_86, x_85); +if (x_88 == 0) +{ +lean_dec(x_86); +lean_dec(x_84); lean_dec_ref(x_83); -if (lean_obj_tag(x_86) == 0) +lean_dec_ref(x_82); +lean_dec_ref(x_81); +lean_dec_ref(x_1); +x_46 = x_80; +x_47 = x_79; +goto block_57; +} +else { -lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; uint8_t x_92; -x_87 = lean_ctor_get(x_86, 0); -lean_inc(x_87); -lean_dec_ref(x_86); -x_88 = ((lean_object*)(l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__0)); -x_89 = ((lean_object*)(l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__1)); -x_90 = ((lean_object*)(l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__2)); -x_91 = ((lean_object*)(l_Lean_Parser_parseHeader___closed__6)); -lean_inc(x_81); -x_92 = l_Lean_Syntax_isOfKind(x_81, x_91); +lean_object* x_89; lean_object* x_90; lean_object* x_91; uint8_t x_92; +x_89 = l_Lean_Syntax_getArg(x_86, x_77); +lean_dec(x_86); +x_90 = ((lean_object*)(l_Lean_Parser_parseHeader___closed__1)); +x_91 = l_Lean_Name_mkStr4(x_82, x_81, x_83, x_90); +x_92 = l_Lean_Syntax_isOfKind(x_89, x_91); +lean_dec(x_91); if (x_92 == 0) { +lean_dec(x_84); lean_dec_ref(x_1); -x_38 = x_81; -x_39 = x_87; -goto block_44; +x_46 = x_80; +x_47 = x_79; +goto block_57; } else { -lean_object* x_93; uint8_t x_94; -x_93 = l_Lean_Syntax_getArg(x_81, x_64); -x_94 = l_Lean_Syntax_isNone(x_93); -if (x_94 == 0) -{ -lean_object* x_95; uint8_t x_96; -x_95 = lean_unsigned_to_nat(1u); -lean_inc(x_93); -x_96 = l_Lean_Syntax_matchesNull(x_93, x_95); -if (x_96 == 0) -{ -lean_dec(x_93); -lean_dec_ref(x_1); -x_38 = x_81; -x_39 = x_87; -goto block_44; -} -else -{ -lean_object* x_97; lean_object* x_98; uint8_t x_99; -x_97 = l_Lean_Syntax_getArg(x_93, x_64); -lean_dec(x_93); -x_98 = ((lean_object*)(l_Lean_Parser_parseHeader___closed__8)); -lean_inc(x_97); -x_99 = l_Lean_Syntax_isOfKind(x_97, x_98); -if (x_99 == 0) -{ -lean_dec(x_97); -lean_dec_ref(x_1); -x_38 = x_81; -x_39 = x_87; -goto block_44; -} -else -{ -lean_object* x_100; lean_object* x_101; -x_100 = l_Lean_Syntax_getArg(x_97, x_64); -lean_dec(x_97); -x_101 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_101, 0, x_100); -x_65 = x_90; -x_66 = x_87; -x_67 = x_89; -x_68 = x_85; -x_69 = x_81; -x_70 = x_88; -x_71 = x_101; -goto block_80; +x_58 = x_78; +x_59 = x_79; +x_60 = x_84; +x_61 = x_80; +goto block_76; } } } else { -lean_object* x_102; -lean_dec(x_93); -x_102 = lean_box(0); -x_65 = x_90; -x_66 = x_87; -x_67 = x_89; -x_68 = x_85; -x_69 = x_81; -x_70 = x_88; -x_71 = x_102; -goto block_80; -} -} -} -else -{ -lean_object* x_103; lean_object* x_104; uint8_t x_105; uint8_t x_110; -lean_dec(x_81); -lean_dec(x_25); -lean_dec(x_24); -lean_del_object(x_10); -lean_del_object(x_6); -lean_dec_ref(x_1); -x_103 = lean_ctor_get(x_86, 0); -x_110 = !lean_is_exclusive(x_86); -if (x_110 == 0) -{ -x_104 = x_86; -x_105 = x_110; -goto block_109; -} -else -{ -lean_inc(x_103); lean_dec(x_86); -x_104 = lean_box(0); -x_105 = x_110; -goto block_109; +lean_dec_ref(x_83); +lean_dec_ref(x_82); +lean_dec_ref(x_81); +x_58 = x_78; +x_59 = x_79; +x_60 = x_84; +x_61 = x_80; +goto block_76; } -block_109: -{ -lean_object* x_106; -if (x_105 == 0) -{ -x_106 = x_104; -goto block_107; -} -else -{ -lean_object* x_108; -x_108 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_108, 0, x_103); -x_106 = x_108; -goto block_107; -} -block_107: -{ -return x_106; -} -} -} -} -} -} -} -else -{ -lean_object* x_120; lean_object* x_121; uint8_t x_122; uint8_t x_127; -lean_dec_ref(x_1); -x_120 = lean_ctor_get(x_4, 0); -x_127 = !lean_is_exclusive(x_4); -if (x_127 == 0) -{ -x_121 = x_4; -x_122 = x_127; -goto block_126; -} -else -{ -lean_inc(x_120); -lean_dec(x_4); -x_121 = lean_box(0); -x_122 = x_127; -goto block_126; -} -block_126: -{ -lean_object* x_123; -if (x_122 == 0) -{ -x_123 = x_121; -goto block_124; -} -else -{ -lean_object* x_125; -x_125 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_125, 0, x_120); -x_123 = x_125; -goto block_124; } block_124: { -return x_123; +lean_object* x_95; lean_object* x_96; size_t x_97; size_t x_98; lean_object* x_99; +x_95 = lean_obj_once(&l_Lean_Parser_parseHeader___closed__4, &l_Lean_Parser_parseHeader___closed__4_once, _init_l_Lean_Parser_parseHeader___closed__4); +x_96 = l_Lean_Parser_ParserState_allErrors(x_22); +x_97 = lean_array_size(x_96); +x_98 = 0; +lean_inc_ref(x_1); +x_99 = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__1(x_1, x_96, x_97, x_98, x_95); +lean_dec_ref(x_96); +if (lean_obj_tag(x_99) == 0) +{ +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; uint8_t x_105; +x_100 = lean_ctor_get(x_99, 0); +lean_inc(x_100); +lean_dec_ref(x_99); +x_101 = ((lean_object*)(l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__0)); +x_102 = ((lean_object*)(l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__1)); +x_103 = ((lean_object*)(l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Parser_parseHeader_spec__2___closed__2)); +x_104 = ((lean_object*)(l_Lean_Parser_parseHeader___closed__6)); +lean_inc(x_94); +x_105 = l_Lean_Syntax_isOfKind(x_94, x_104); +if (x_105 == 0) +{ +lean_dec_ref(x_1); +x_46 = x_94; +x_47 = x_100; +goto block_57; +} +else +{ +lean_object* x_106; uint8_t x_107; +x_106 = l_Lean_Syntax_getArg(x_94, x_77); +x_107 = l_Lean_Syntax_isNone(x_106); +if (x_107 == 0) +{ +lean_object* x_108; uint8_t x_109; +x_108 = lean_unsigned_to_nat(1u); +lean_inc(x_106); +x_109 = l_Lean_Syntax_matchesNull(x_106, x_108); +if (x_109 == 0) +{ +lean_dec(x_106); +lean_dec_ref(x_1); +x_46 = x_94; +x_47 = x_100; +goto block_57; +} +else +{ +lean_object* x_110; lean_object* x_111; uint8_t x_112; +x_110 = l_Lean_Syntax_getArg(x_106, x_77); +lean_dec(x_106); +x_111 = ((lean_object*)(l_Lean_Parser_parseHeader___closed__8)); +lean_inc(x_110); +x_112 = l_Lean_Syntax_isOfKind(x_110, x_111); +if (x_112 == 0) +{ +lean_dec(x_110); +lean_dec_ref(x_1); +x_46 = x_94; +x_47 = x_100; +goto block_57; +} +else +{ +lean_object* x_113; lean_object* x_114; +x_113 = l_Lean_Syntax_getArg(x_110, x_77); +lean_dec(x_110); +x_114 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_114, 0, x_113); +x_78 = x_98; +x_79 = x_100; +x_80 = x_94; +x_81 = x_102; +x_82 = x_101; +x_83 = x_103; +x_84 = x_114; +goto block_93; +} +} +} +else +{ +lean_object* x_115; +lean_dec(x_106); +x_115 = lean_box(0); +x_78 = x_98; +x_79 = x_100; +x_80 = x_94; +x_81 = x_102; +x_82 = x_101; +x_83 = x_103; +x_84 = x_115; +goto block_93; +} +} +} +else +{ +lean_object* x_116; lean_object* x_117; uint8_t x_118; uint8_t x_123; +lean_dec(x_94); +lean_dec(x_25); +lean_dec(x_24); +lean_del_object(x_10); +lean_del_object(x_6); +lean_dec_ref(x_1); +x_116 = lean_ctor_get(x_99, 0); +x_123 = !lean_is_exclusive(x_99); +if (x_123 == 0) +{ +x_117 = x_99; +x_118 = x_123; +goto block_122; +} +else +{ +lean_inc(x_116); +lean_dec(x_99); +x_117 = lean_box(0); +x_118 = x_123; +goto block_122; +} +block_122: +{ +lean_object* x_119; +if (x_118 == 0) +{ +x_119 = x_117; +goto block_120; +} +else +{ +lean_object* x_121; +x_121 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_121, 0, x_116); +x_119 = x_121; +goto block_120; +} +block_120: +{ +return x_119; +} +} +} +} +} +} +} +else +{ +lean_object* x_133; lean_object* x_134; uint8_t x_135; uint8_t x_140; +lean_dec_ref(x_1); +x_133 = lean_ctor_get(x_4, 0); +x_140 = !lean_is_exclusive(x_4); +if (x_140 == 0) +{ +x_134 = x_4; +x_135 = x_140; +goto block_139; +} +else +{ +lean_inc(x_133); +lean_dec(x_4); +x_134 = lean_box(0); +x_135 = x_140; +goto block_139; +} +block_139: +{ +lean_object* x_136; +if (x_135 == 0) +{ +x_136 = x_134; +goto block_137; +} +else +{ +lean_object* x_138; +x_138 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_138, 0, x_133); +x_136 = x_138; +goto block_137; +} +block_137: +{ +return x_136; } } } @@ -1902,54 +2075,72 @@ x_3 = l_Lean_Parser_parseHeader(x_1); return x_3; } } -static lean_object* _init_l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__0(void) { +LEAN_EXPORT lean_object* l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = ((lean_object*)(l___private_Lean_Parser_Module_0__Lean_Parser_mkErrorMessage___closed__0)); -x_2 = lean_string_utf8_byte_size(x_1); -return x_2; -} -} -static lean_object* _init_l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__1(void) { -_start: +lean_object* x_3; lean_object* x_14; lean_object* x_15; uint8_t x_16; +x_14 = lean_ctor_get(x_1, 0); +x_15 = lean_ctor_get(x_1, 3); +x_16 = lean_nat_dec_le(x_2, x_15); +if (x_16 == 0) { -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = lean_obj_once(&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__0, &l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__0_once, _init_l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__0); -x_2 = lean_unsigned_to_nat(0u); -x_3 = ((lean_object*)(l___private_Lean_Parser_Module_0__Lean_Parser_mkErrorMessage___closed__0)); -x_4 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_4, 0, x_3); -lean_ctor_set(x_4, 1, x_2); -lean_ctor_set(x_4, 2, x_1); -return x_4; +lean_object* x_17; +lean_inc(x_15); +lean_inc(x_2); +lean_inc_ref(x_14); +x_17 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_17, 0, x_14); +lean_ctor_set(x_17, 1, x_2); +lean_ctor_set(x_17, 2, x_15); +x_3 = x_17; +goto block_13; } -} -LEAN_EXPORT lean_object* l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI(lean_object* x_1) { -_start: +else { -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_2 = ((lean_object*)(l___private_Lean_Parser_Module_0__Lean_Parser_mkErrorMessage___closed__0)); -x_3 = lean_obj_once(&l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__1, &l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__1_once, _init_l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__1); -lean_inc(x_1); +lean_object* x_18; +lean_inc_n(x_2, 2); +lean_inc_ref(x_14); +x_18 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_18, 0, x_14); +lean_ctor_set(x_18, 1, x_2); +lean_ctor_set(x_18, 2, x_2); +x_3 = x_18; +goto block_13; +} +block_13: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_inc(x_2); +lean_inc_ref(x_3); x_4 = lean_alloc_ctor(0, 4, 0); lean_ctor_set(x_4, 0, x_3); -lean_ctor_set(x_4, 1, x_1); +lean_ctor_set(x_4, 1, x_2); lean_ctor_set(x_4, 2, x_3); -lean_ctor_set(x_4, 3, x_1); -x_5 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_5, 0, x_4); -lean_ctor_set(x_5, 1, x_2); -x_6 = ((lean_object*)(l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__4)); -x_7 = lean_unsigned_to_nat(1u); -x_8 = lean_mk_empty_array_with_capacity(x_7); -x_9 = lean_array_push(x_8, x_5); -x_10 = lean_box(2); -x_11 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_11, 0, x_10); -lean_ctor_set(x_11, 1, x_6); -lean_ctor_set(x_11, 2, x_9); -return x_11; +lean_ctor_set(x_4, 3, x_2); +x_5 = ((lean_object*)(l___private_Lean_Parser_Module_0__Lean_Parser_mkErrorMessage___closed__0)); +x_6 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_6, 0, x_4); +lean_ctor_set(x_6, 1, x_5); +x_7 = ((lean_object*)(l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__2)); +x_8 = lean_unsigned_to_nat(1u); +x_9 = lean_mk_empty_array_with_capacity(x_8); +x_10 = lean_array_push(x_9, x_6); +x_11 = lean_box(2); +x_12 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_12, 0, x_11); +lean_ctor_set(x_12, 1, x_7); +lean_ctor_set(x_12, 2, x_10); +return x_12; +} +} +} +LEAN_EXPORT lean_object* l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI(x_1, x_2); +lean_dec_ref(x_1); +return x_3; } } LEAN_EXPORT uint8_t l_Lean_Parser_isTerminalCommand(lean_object* x_1) { @@ -1978,7 +2169,7 @@ block_5: if (x_2 == 0) { lean_object* x_3; uint8_t x_4; -x_3 = ((lean_object*)(l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__4)); +x_3 = ((lean_object*)(l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI___closed__2)); x_4 = l_Lean_Syntax_isOfKind(x_1, x_3); return x_4; } @@ -2225,7 +2416,7 @@ uint8_t x_26; x_26 = l_Lean_Parser_InputContext_atEnd(x_1, x_19); if (x_26 == 0) { -lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; uint8_t x_45; lean_object* x_46; lean_object* x_62; lean_object* x_63; lean_object* x_64; uint8_t x_65; lean_object* x_66; uint8_t x_67; lean_object* x_69; lean_object* x_70; lean_object* x_71; uint8_t x_72; lean_object* x_73; size_t x_79; size_t x_80; lean_object* x_81; uint8_t x_82; uint8_t x_101; +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; uint8_t x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; uint8_t x_66; uint8_t x_67; lean_object* x_69; lean_object* x_70; lean_object* x_71; uint8_t x_72; lean_object* x_73; size_t x_79; size_t x_80; lean_object* x_81; uint8_t x_82; uint8_t x_101; x_27 = lean_ctor_get(x_2, 0); x_28 = lean_ctor_get(x_1, 0); x_29 = lean_obj_once(&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00Lean_Parser_parseCommand_spec__1___closed__0, &l___private_Init_While_0__Lean_Loop_forIn_loop___at___00Lean_Parser_parseCommand_spec__1___closed__0_once, _init_l___private_Init_While_0__Lean_Loop_forIn_loop___at___00Lean_Parser_parseCommand_spec__1___closed__0); @@ -2295,12 +2486,12 @@ block_61: lean_object* x_47; lean_object* x_48; lean_inc_ref(x_38); lean_inc_ref(x_1); -x_47 = l___private_Lean_Parser_Module_0__Lean_Parser_mkErrorMessage(x_1, x_39, x_38, x_42); +x_47 = l___private_Lean_Parser_Module_0__Lean_Parser_mkErrorMessage(x_1, x_39, x_38, x_44); x_48 = l_Lean_MessageLog_add(x_47, x_46); -if (x_45 == 0) +if (x_42 == 0) { uint8_t x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; -lean_dec(x_44); +lean_dec(x_45); lean_dec_ref(x_2); lean_dec_ref(x_1); x_49 = 1; @@ -2376,42 +2567,42 @@ lean_del_object(x_20); lean_del_object(x_17); x_4 = x_43; x_5 = x_48; -x_6 = x_44; +x_6 = x_45; goto block_13; } } block_68: { -if (x_65 == 0) +if (x_66 == 0) { -x_42 = x_62; -x_43 = x_63; -x_44 = x_64; -x_45 = x_67; -x_46 = x_66; +x_42 = x_67; +x_43 = x_62; +x_44 = x_63; +x_45 = x_64; +x_46 = x_65; goto block_61; } else { if (x_67 == 0) { -x_42 = x_62; -x_43 = x_63; -x_44 = x_64; -x_45 = x_67; -x_46 = x_66; +x_42 = x_67; +x_43 = x_62; +x_44 = x_63; +x_45 = x_64; +x_46 = x_65; goto block_61; } else { -lean_dec_ref(x_62); +lean_dec_ref(x_63); lean_dec(x_39); lean_dec_ref(x_38); lean_del_object(x_24); lean_del_object(x_20); lean_del_object(x_17); -x_4 = x_63; -x_5 = x_66; +x_4 = x_62; +x_5 = x_65; x_6 = x_64; goto block_13; } @@ -2431,33 +2622,33 @@ if (lean_obj_tag(x_76) == 0) { uint8_t x_77; x_77 = 1; -x_62 = x_69; -x_63 = x_71; +x_62 = x_71; +x_63 = x_69; x_64 = x_73; -x_65 = x_72; -x_66 = x_70; +x_65 = x_70; +x_66 = x_72; x_67 = x_77; goto block_68; } else { lean_dec_ref(x_76); -x_62 = x_69; -x_63 = x_71; +x_62 = x_71; +x_63 = x_69; x_64 = x_73; -x_65 = x_72; -x_66 = x_70; +x_65 = x_70; +x_66 = x_72; x_67 = x_74; goto block_68; } } else { -x_62 = x_69; -x_63 = x_71; +x_62 = x_71; +x_63 = x_69; x_64 = x_73; -x_65 = x_72; -x_66 = x_70; +x_65 = x_70; +x_66 = x_72; x_67 = x_74; goto block_68; } @@ -2567,9 +2758,9 @@ else lean_object* x_104; lean_object* x_105; lean_dec(x_23); lean_dec_ref(x_2); -lean_dec_ref(x_1); lean_inc(x_19); -x_104 = l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI(x_19); +x_104 = l___private_Lean_Parser_Module_0__Lean_Parser_mkEOI(x_1, x_19); +lean_dec_ref(x_1); if (x_25 == 0) { lean_ctor_set(x_24, 1, x_104); @@ -2636,147 +2827,169 @@ return x_107; LEAN_EXPORT lean_object* l_Lean_Parser_parseCommand(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { -lean_object* x_5; uint8_t x_6; lean_object* x_7; uint8_t x_8; uint8_t x_41; +lean_object* x_5; uint8_t x_6; uint8_t x_7; lean_object* x_8; uint8_t x_9; uint8_t x_47; x_5 = lean_ctor_get(x_3, 0); x_6 = lean_ctor_get_uint8(x_3, sizeof(void*)*1); -x_41 = !lean_is_exclusive(x_3); -if (x_41 == 0) +x_7 = lean_ctor_get_uint8(x_3, sizeof(void*)*1 + 1); +x_47 = !lean_is_exclusive(x_3); +if (x_47 == 0) { -x_7 = x_3; -x_8 = x_41; -goto block_40; +x_8 = x_3; +x_9 = x_47; +goto block_46; } else { lean_inc(x_5); lean_dec(x_3); -x_7 = lean_box(0); -x_8 = x_41; -goto block_40; +x_8 = lean_box(0); +x_9 = x_47; +goto block_46; } -block_40: +block_46: { -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; uint8_t x_38; -x_9 = lean_box(0); -x_10 = lean_box(x_6); -x_11 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_11, 0, x_10); -lean_ctor_set(x_11, 1, x_9); +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; uint8_t x_44; +x_10 = lean_box(0); +x_11 = lean_box(x_6); x_12 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_12, 0, x_5); -lean_ctor_set(x_12, 1, x_11); +lean_ctor_set(x_12, 0, x_11); +lean_ctor_set(x_12, 1, x_10); x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_4); +lean_ctor_set(x_13, 0, x_5); lean_ctor_set(x_13, 1, x_12); -x_14 = l___private_Init_While_0__Lean_Loop_forIn_loop___at___00Lean_Parser_parseCommand_spec__1(x_1, x_2, x_13); -x_15 = lean_ctor_get(x_14, 1); -lean_inc(x_15); +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_4); +lean_ctor_set(x_14, 1, x_13); +x_15 = l___private_Init_While_0__Lean_Loop_forIn_loop___at___00Lean_Parser_parseCommand_spec__1(x_1, x_2, x_14); x_16 = lean_ctor_get(x_15, 1); lean_inc(x_16); -x_17 = lean_ctor_get(x_14, 0); +x_17 = lean_ctor_get(x_16, 1); lean_inc(x_17); -lean_dec_ref(x_14); x_18 = lean_ctor_get(x_15, 0); -x_38 = !lean_is_exclusive(x_15); -if (x_38 == 0) -{ -lean_object* x_39; -x_39 = lean_ctor_get(x_15, 1); -lean_dec(x_39); -x_19 = x_15; -x_20 = x_38; -goto block_37; -} -else -{ lean_inc(x_18); -lean_dec(x_15); -x_19 = lean_box(0); -x_20 = x_38; -goto block_37; -} -block_37: +lean_dec_ref(x_15); +x_19 = lean_ctor_get(x_16, 0); +x_44 = !lean_is_exclusive(x_16); +if (x_44 == 0) { -lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; uint8_t x_36; -x_21 = lean_ctor_get(x_16, 0); -x_22 = lean_ctor_get(x_16, 1); -x_36 = !lean_is_exclusive(x_16); -if (x_36 == 0) -{ -x_23 = x_16; -x_24 = x_36; -goto block_35; +lean_object* x_45; +x_45 = lean_ctor_get(x_16, 1); +lean_dec(x_45); +x_20 = x_16; +x_21 = x_44; +goto block_43; } else { -lean_inc(x_22); -lean_inc(x_21); +lean_inc(x_19); lean_dec(x_16); -x_23 = lean_box(0); -x_24 = x_36; -goto block_35; +x_20 = lean_box(0); +x_21 = x_44; +goto block_43; } -block_35: +block_43: { -lean_object* x_25; -if (x_8 == 0) +lean_object* x_22; lean_object* x_23; lean_object* x_24; uint8_t x_25; uint8_t x_42; +x_22 = lean_ctor_get(x_17, 0); +x_23 = lean_ctor_get(x_17, 1); +x_42 = !lean_is_exclusive(x_17); +if (x_42 == 0) { -lean_ctor_set(x_7, 0, x_18); -x_25 = x_7; -goto block_33; +x_24 = x_17; +x_25 = x_42; +goto block_41; } else { -lean_object* x_34; -x_34 = lean_alloc_ctor(0, 1, 1); -lean_ctor_set(x_34, 0, x_18); -x_25 = x_34; -goto block_33; +lean_inc(x_23); +lean_inc(x_22); +lean_dec(x_17); +x_24 = lean_box(0); +x_25 = x_42; +goto block_41; } -block_33: +block_41: { -uint8_t x_26; lean_object* x_27; -x_26 = lean_unbox(x_21); -lean_dec(x_21); -lean_ctor_set_uint8(x_25, sizeof(void*)*1, x_26); -if (x_24 == 0) +lean_object* x_26; +if (x_7 == 0) { -lean_ctor_set(x_23, 1, x_17); -lean_ctor_set(x_23, 0, x_25); -x_27 = x_23; -goto block_31; +x_26 = x_23; +goto block_38; } else { -lean_object* x_32; -x_32 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_32, 0, x_25); -lean_ctor_set(x_32, 1, x_17); -x_27 = x_32; -goto block_31; +lean_object* x_39; lean_object* x_40; +x_39 = l___private_Lean_Parser_Module_0__Lean_Parser_setStartOfFileLeading(x_23); +x_40 = lean_ctor_get(x_39, 0); +lean_inc(x_40); +lean_dec_ref(x_39); +x_26 = x_40; +goto block_38; } -block_31: +block_38: { -lean_object* x_28; -if (x_20 == 0) +uint8_t x_27; lean_object* x_28; +x_27 = 0; +if (x_9 == 0) { -lean_ctor_set(x_19, 1, x_27); -lean_ctor_set(x_19, 0, x_22); -x_28 = x_19; -goto block_29; +lean_ctor_set(x_8, 0, x_19); +x_28 = x_8; +goto block_36; } else { -lean_object* x_30; -x_30 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_30, 0, x_22); -lean_ctor_set(x_30, 1, x_27); -x_28 = x_30; -goto block_29; +lean_object* x_37; +x_37 = lean_alloc_ctor(0, 1, 2); +lean_ctor_set(x_37, 0, x_19); +x_28 = x_37; +goto block_36; } -block_29: +block_36: { -return x_28; +uint8_t x_29; lean_object* x_30; +x_29 = lean_unbox(x_22); +lean_dec(x_22); +lean_ctor_set_uint8(x_28, sizeof(void*)*1, x_29); +lean_ctor_set_uint8(x_28, sizeof(void*)*1 + 1, x_27); +if (x_25 == 0) +{ +lean_ctor_set(x_24, 1, x_18); +lean_ctor_set(x_24, 0, x_28); +x_30 = x_24; +goto block_34; +} +else +{ +lean_object* x_35; +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_28); +lean_ctor_set(x_35, 1, x_18); +x_30 = x_35; +goto block_34; +} +block_34: +{ +lean_object* x_31; +if (x_21 == 0) +{ +lean_ctor_set(x_20, 1, x_30); +lean_ctor_set(x_20, 0, x_26); +x_31 = x_20; +goto block_32; +} +else +{ +lean_object* x_33; +x_33 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_33, 0, x_26); +lean_ctor_set(x_33, 1, x_30); +x_31 = x_33; +goto block_32; +} +block_32: +{ +return x_31; +} } } } @@ -3856,7 +4069,6 @@ else { uint8_t x_41; lean_dec(x_14); -lean_dec(x_13); lean_dec_ref(x_2); lean_dec_ref(x_1); x_41 = l_Lean_MessageLog_hasUnreported(x_15); @@ -3864,25 +4076,28 @@ if (x_41 == 0) { if (x_38 == 0) { +lean_dec(x_13); lean_dec_ref(x_5); x_16 = x_38; goto block_37; } else { -lean_object* x_42; +lean_object* x_42; lean_object* x_43; lean_dec(x_15); -x_42 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_42, 0, x_5); -return x_42; +x_42 = lean_array_push(x_5, x_13); +x_43 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_43, 0, x_42); +return x_43; } } else { -uint8_t x_43; +uint8_t x_44; +lean_dec(x_13); lean_dec_ref(x_5); -x_43 = 0; -x_16 = x_43; +x_44 = 0; +x_16 = x_44; goto block_37; } } @@ -4035,26 +4250,26 @@ x_14 = ((lean_object*)(l_Lean_Parser_testParseModule___closed__0)); x_15 = l___private_Lean_Parser_Module_0__Lean_Parser_testParseModuleAux_parse(x_1, x_7, x_12, x_13, x_14); if (lean_obj_tag(x_15) == 0) { -lean_object* x_16; lean_object* x_17; uint8_t x_18; uint8_t x_32; +lean_object* x_16; lean_object* x_17; uint8_t x_18; uint8_t x_31; x_16 = lean_ctor_get(x_15, 0); -x_32 = !lean_is_exclusive(x_15); -if (x_32 == 0) +x_31 = !lean_is_exclusive(x_15); +if (x_31 == 0) { x_17 = x_15; -x_18 = x_32; -goto block_31; +x_18 = x_31; +goto block_30; } else { lean_inc(x_16); lean_dec(x_15); x_17 = lean_box(0); -x_18 = x_32; -goto block_31; +x_18 = x_31; +goto block_30; } -block_31: +block_30: { -lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; x_19 = ((lean_object*)(l_Lean_Parser_testParseModule___closed__2)); x_20 = l_Lean_mkListNode(x_16); x_21 = lean_unsigned_to_nat(2u); @@ -4066,110 +4281,109 @@ x_26 = lean_alloc_ctor(1, 3, 0); lean_ctor_set(x_26, 0, x_25); lean_ctor_set(x_26, 1, x_19); lean_ctor_set(x_26, 2, x_24); -x_27 = l_Lean_Syntax_updateLeading(x_26); if (x_18 == 0) { -lean_ctor_set(x_17, 0, x_27); -x_28 = x_17; -goto block_29; +lean_ctor_set(x_17, 0, x_26); +x_27 = x_17; +goto block_28; } else { -lean_object* x_30; -x_30 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_30, 0, x_27); -x_28 = x_30; -goto block_29; +lean_object* x_29; +x_29 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_29, 0, x_26); +x_27 = x_29; +goto block_28; } -block_29: +block_28: { -return x_28; +return x_27; } } } else { -lean_object* x_33; lean_object* x_34; uint8_t x_35; uint8_t x_40; +lean_object* x_32; lean_object* x_33; uint8_t x_34; uint8_t x_39; lean_dec(x_11); -x_33 = lean_ctor_get(x_15, 0); -x_40 = !lean_is_exclusive(x_15); -if (x_40 == 0) +x_32 = lean_ctor_get(x_15, 0); +x_39 = !lean_is_exclusive(x_15); +if (x_39 == 0) { -x_34 = x_15; -x_35 = x_40; -goto block_39; +x_33 = x_15; +x_34 = x_39; +goto block_38; } else { -lean_inc(x_33); +lean_inc(x_32); lean_dec(x_15); -x_34 = lean_box(0); -x_35 = x_40; -goto block_39; +x_33 = lean_box(0); +x_34 = x_39; +goto block_38; } -block_39: +block_38: { -lean_object* x_36; -if (x_35 == 0) +lean_object* x_35; +if (x_34 == 0) { -x_36 = x_34; -goto block_37; +x_35 = x_33; +goto block_36; } else { -lean_object* x_38; -x_38 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_38, 0, x_33); -x_36 = x_38; -goto block_37; +lean_object* x_37; +x_37 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_37, 0, x_32); +x_35 = x_37; +goto block_36; } -block_37: +block_36: { -return x_36; +return x_35; } } } } else { -lean_object* x_41; lean_object* x_42; uint8_t x_43; uint8_t x_48; +lean_object* x_40; lean_object* x_41; uint8_t x_42; uint8_t x_47; lean_dec_ref(x_7); lean_dec_ref(x_1); -x_41 = lean_ctor_get(x_8, 0); -x_48 = !lean_is_exclusive(x_8); -if (x_48 == 0) +x_40 = lean_ctor_get(x_8, 0); +x_47 = !lean_is_exclusive(x_8); +if (x_47 == 0) { -x_42 = x_8; -x_43 = x_48; -goto block_47; +x_41 = x_8; +x_42 = x_47; +goto block_46; } else { -lean_inc(x_41); +lean_inc(x_40); lean_dec(x_8); -x_42 = lean_box(0); -x_43 = x_48; -goto block_47; +x_41 = lean_box(0); +x_42 = x_47; +goto block_46; } -block_47: +block_46: { -lean_object* x_44; -if (x_43 == 0) +lean_object* x_43; +if (x_42 == 0) { -x_44 = x_42; -goto block_45; +x_43 = x_41; +goto block_44; } else { -lean_object* x_46; -x_46 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_46, 0, x_41); -x_44 = x_46; -goto block_45; +lean_object* x_45; +x_45 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_45, 0, x_40); +x_43 = x_45; +goto block_44; } -block_45: +block_44: { -return x_44; +return x_43; } } } diff --git a/stage0/stdlib/Lean/Server/FileWorker/RequestHandling.c b/stage0/stdlib/Lean/Server/FileWorker/RequestHandling.c index 82207963e4..89c9ffe13a 100644 --- a/stage0/stdlib/Lean/Server/FileWorker/RequestHandling.c +++ b/stage0/stdlib/Lean/Server/FileWorker/RequestHandling.c @@ -3331,8 +3331,8 @@ return x_20; else { lean_object* x_39; lean_object* x_40; uint8_t x_41; uint8_t x_47; -lean_dec_ref(x_7); lean_dec(x_10); +lean_dec_ref(x_7); lean_del_object(x_8); x_39 = lean_ctor_get(x_14, 0); x_47 = !lean_is_exclusive(x_14); diff --git a/stage0/stdlib/Lean/Server/Test/Runner.c b/stage0/stdlib/Lean/Server/Test/Runner.c index e8eeb9e57a..83ba161b3d 100644 --- a/stage0/stdlib/Lean/Server/Test/Runner.c +++ b/stage0/stdlib/Lean/Server/Test/Runner.c @@ -1140,7 +1140,7 @@ static const lean_string_object l_Lean_Server_Test_Runner_patchUri___closed__1_v static const lean_object* l_Lean_Server_Test_Runner_patchUri___closed__1 = (const lean_object*)&l_Lean_Server_Test_Runner_patchUri___closed__1_value; static const lean_string_object l_Lean_Server_Test_Runner_patchUri___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 10, .m_capacity = 10, .m_length = 9, .m_data = "/src/Std/"}; static const lean_object* l_Lean_Server_Test_Runner_patchUri___closed__2 = (const lean_object*)&l_Lean_Server_Test_Runner_patchUri___closed__2_value; -static const lean_string_object l_Lean_Server_Test_Runner_patchUri___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 25, .m_capacity = 25, .m_length = 24, .m_data = "/tests/lean/interactive/"}; +static const lean_string_object l_Lean_Server_Test_Runner_patchUri___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 17, .m_capacity = 17, .m_length = 16, .m_data = "/tests/misc_dir/"}; static const lean_object* l_Lean_Server_Test_Runner_patchUri___closed__3 = (const lean_object*)&l_Lean_Server_Test_Runner_patchUri___closed__3_value; static const lean_array_object l_Lean_Server_Test_Runner_patchUri___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l_Lean_Server_Test_Runner_patchUri___closed__0_value),((lean_object*)&l_Lean_Server_Test_Runner_patchUri___closed__1_value),((lean_object*)&l_Lean_Server_Test_Runner_patchUri___closed__2_value),((lean_object*)&l_Lean_Server_Test_Runner_patchUri___closed__3_value)}}; static const lean_object* l_Lean_Server_Test_Runner_patchUri___closed__4 = (const lean_object*)&l_Lean_Server_Test_Runner_patchUri___closed__4_value;