chore: update stage0
This commit is contained in:
parent
d685c545b4
commit
8af1024931
101 changed files with 27275 additions and 23622 deletions
137
stage0/src/CMakeLists.txt
generated
137
stage0/src/CMakeLists.txt
generated
|
|
@ -15,11 +15,12 @@ set(LEAN_VERSION_IS_RELEASE 0) # This number is 1 in the release revision, and
|
|||
set(LEAN_SPECIAL_VERSION_DESC "" CACHE STRING "Additional version description like 'nightly-2018-03-11'")
|
||||
set(LEAN_VERSION_STRING "${LEAN_VERSION_MAJOR}.${LEAN_VERSION_MINOR}.${LEAN_VERSION_PATCH}")
|
||||
if (LEAN_SPECIAL_VERSION_DESC)
|
||||
set(LEAN_VERSION_STRING "${LEAN_VERSION_STRING}-${LEAN_SPECIAL_VERSION_DESC}")
|
||||
string(APPEND LEAN_VERSION_STRING "-${LEAN_SPECIAL_VERSION_DESC}")
|
||||
endif()
|
||||
|
||||
set(LEAN_EXTRA_LINKER_FLAGS "" CACHE STRING "Additional flags used by the linker")
|
||||
set(LEAN_EXTRA_CXX_FLAGS "" CACHE STRING "Additional flags used by the C++ compiler")
|
||||
set(LEAN_TEST_VARS "LEAN_CC=${CMAKE_C_COMPILER}" CACHE STRING "Additional environment variables used when running tests")
|
||||
|
||||
if (NOT CMAKE_BUILD_TYPE)
|
||||
message(STATUS "No build type selected, default to Release")
|
||||
|
|
@ -53,7 +54,6 @@ option(TRACK_LIVE_EXPRS "TRACK_LIVE_EXPRS" OFF)
|
|||
option(CUSTOM_ALLOCATORS "CUSTOM_ALLOCATORS" ON)
|
||||
option(SAVE_SNAPSHOT "SAVE_SNAPSHOT" ON)
|
||||
option(SAVE_INFO "SAVE_INFO" ON)
|
||||
option(FAKE_FREE "Disable actually freeing runtime objects, useful for debugging memory management issues" OFF)
|
||||
option(SMALL_ALLOCATOR "SMALL_ALLOCATOR" ON)
|
||||
option(LAZY_RC "LAZY_RC" OFF)
|
||||
option(RUNTIME_STATS "RUNTIME_STATS" OFF)
|
||||
|
|
@ -65,11 +65,6 @@ option(CHECK_OLEAN_VERSION "Only load .olean files compiled with the current ver
|
|||
set(LEAN_EXTRA_MAKE_OPTS "" CACHE STRING "extra options to lean --make")
|
||||
set(LEANC_CC "cc" CACHE STRING "C compiler to use in `leanc`")
|
||||
|
||||
if ("${FAKE_FREE}" MATCHES "ON")
|
||||
set(LEAN_EXTRA_CXX_FLAGS "${LEAN_EXTRA_CXX_FLAGS} -D LEAN_FAKE_FREE")
|
||||
set(LEANC_EXTRA_FLAGS "${LEANC_EXTRA_FLAGS} -D LEAN_FAKE_FREE")
|
||||
endif()
|
||||
|
||||
if ("${LAZY_RC}" MATCHES "ON")
|
||||
set(LEAN_LAZY_RC "#define LEAN_LAZY_RC")
|
||||
endif()
|
||||
|
|
@ -87,13 +82,11 @@ else()
|
|||
endif()
|
||||
|
||||
if ("${RUNTIME_STATS}" MATCHES "ON")
|
||||
set(LEAN_EXTRA_CXX_FLAGS "${LEAN_EXTRA_CXX_FLAGS} -D LEAN_RUNTIME_STATS")
|
||||
set(LEANC_EXTRA_FLAGS "${LEANC_EXTRA_FLAGS} -D LEAN_RUNTIME_STATS")
|
||||
string(APPEND LEAN_EXTRA_CXX_FLAGS " -D LEAN_RUNTIME_STATS")
|
||||
endif()
|
||||
|
||||
if (NOT("${CHECK_OLEAN_VERSION}" MATCHES "ON"))
|
||||
set(LEAN_EXTRA_CXX_FLAGS "${LEAN_EXTRA_CXX_FLAGS} -D LEAN_IGNORE_OLEAN_VERSION")
|
||||
set(LEANC_EXTRA_FLAGS "${LEANC_EXTRA_FLAGS} -D LEAN_IGNORE_OLEAN_VERSION")
|
||||
string(APPEND LEAN_EXTRA_CXX_FLAGS " -D LEAN_IGNORE_OLEAN_VERSION")
|
||||
endif()
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Emscripten")
|
||||
|
|
@ -109,15 +102,14 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Emscripten")
|
|||
# From https://emscripten.org/docs/compiling/WebAssembly.html#backends:
|
||||
# > The simple and safe thing is to pass all -s flags at both compile and link time.
|
||||
set(EMSCRIPTEN_SETTINGS "-s ALLOW_MEMORY_GROWTH=1 -s DISABLE_EXCEPTION_CATCHING=0 -s MAIN_MODULE=1 -fexceptions")
|
||||
set(LEAN_EXTRA_CXX_FLAGS "${LEAN_EXTRA_CXX_FLAGS} -D LEAN_EMSCRIPTEN ${EMSCRIPTEN_SETTINGS}")
|
||||
set(LEANC_EXTRA_FLAGS "${LEANC_EXTRA_FLAGS} -D LEAN_EMSCRIPTEN ${EMSCRIPTEN_SETTINGS}")
|
||||
set(LEAN_EXTRA_LINKER_FLAGS "${LEAN_EXTRA_LINKER_FLAGS} ${EMSCRIPTEN_SETTINGS}")
|
||||
string(APPEND LEAN_EXTRA_CXX_FLAGS " -D LEAN_EMSCRIPTEN ${EMSCRIPTEN_SETTINGS}")
|
||||
string(APPEND LEAN_EXTRA_LINKER_FLAGS " ${EMSCRIPTEN_SETTINGS}")
|
||||
endif()
|
||||
if (CMAKE_CROSSCOMPILING_EMULATOR)
|
||||
# emscripten likes to quote "node"
|
||||
string(REPLACE "\"" "" CMAKE_CROSSCOMPILING_EMULATOR ${CMAKE_CROSSCOMPILING_EMULATOR})
|
||||
# HACK(WN): lazy compilation makes Node.js startup time a bad but tolerable ~4s
|
||||
set(CMAKE_CROSSCOMPILING_EMULATOR "${CMAKE_CROSSCOMPILING_EMULATOR} --wasm-lazy-compilation")
|
||||
string(APPEND CMAKE_CROSSCOMPILING_EMULATOR " --wasm-lazy-compilation")
|
||||
else()
|
||||
set(CMAKE_CROSSCOMPILING_EMULATOR)
|
||||
endif()
|
||||
|
|
@ -130,13 +122,12 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
|||
message(STATUS "Windows detected")
|
||||
set(LEAN_WIN_STACK_SIZE "104857600")
|
||||
if (MSVC)
|
||||
set(LEAN_EXTRA_LINKER_FLAGS "${LEAN_EXTRA_LINKER_FLAGS} /STACK:${LEAN_WIN_STACK_SIZE}")
|
||||
string(APPEND LEAN_EXTRA_LINKER_FLAGS " /STACK:${LEAN_WIN_STACK_SIZE}")
|
||||
else()
|
||||
set(LEAN_EXTRA_LINKER_FLAGS "${LEAN_EXTRA_LINKER_FLAGS} -Wl,--stack,${LEAN_WIN_STACK_SIZE}")
|
||||
set(LEANC_EXTRA_FLAGS "${LEANC_EXTRA_FLAGS} -Wl,--stack,${LEAN_WIN_STACK_SIZE}")
|
||||
string(APPEND LEAN_EXTRA_LINKER_FLAGS " -Wl,--stack,${LEAN_WIN_STACK_SIZE}")
|
||||
set(EXTRA_UTIL_LIBS ${EXTRA_UTIL_LIBS} -lpsapi)
|
||||
endif()
|
||||
set(LEAN_EXTRA_CXX_FLAGS "${LEAN_EXTRA_CXX_FLAGS} -D LEAN_WINDOWS -D LEAN_WIN_STACK_SIZE=${LEAN_WIN_STACK_SIZE}")
|
||||
string(APPEND LEAN_EXTRA_CXX_FLAGS " -D LEAN_WINDOWS -D LEAN_WIN_STACK_SIZE=${LEAN_WIN_STACK_SIZE}")
|
||||
# DLLs must go next to executables on Windows
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
|
||||
else()
|
||||
|
|
@ -154,13 +145,11 @@ if(NOT MULTI_THREAD)
|
|||
message(STATUS "Disabled multi-thread support, it will not be safe to run multiple threads in parallel")
|
||||
set(AUTO_THREAD_FINALIZATION OFF)
|
||||
else()
|
||||
set(LEAN_EXTRA_CXX_FLAGS "${LEAN_EXTRA_CXX_FLAGS} -D LEAN_MULTI_THREAD")
|
||||
set(LEANC_EXTRA_FLAGS "${LEANC_EXTRA_FLAGS} -D LEAN_MULTI_THREAD")
|
||||
string(APPEND LEAN_EXTRA_CXX_FLAGS " -D LEAN_MULTI_THREAD")
|
||||
endif()
|
||||
|
||||
if(AUTO_THREAD_FINALIZATION AND NOT MSVC)
|
||||
set(LEAN_EXTRA_CXX_FLAGS "${LEAN_EXTRA_CXX_FLAGS} -D LEAN_AUTO_THREAD_FINALIZATION")
|
||||
set(LEANC_EXTRA_FLAGS "${LEANC_EXTRA_FLAGS} -D LEAN_AUTO_THREAD_FINALIZATION")
|
||||
string(APPEND LEAN_EXTRA_CXX_FLAGS " -D LEAN_AUTO_THREAD_FINALIZATION")
|
||||
endif()
|
||||
|
||||
if(LLVM)
|
||||
|
|
@ -171,8 +160,7 @@ if(LLVM)
|
|||
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
|
||||
|
||||
include_directories(${LLVM_INCLUDE_DIRS})
|
||||
set(LEAN_EXTRA_CXX_FLAGS "${LEAN_EXTRA_CXX_FLAGS} -D LEAN_LLVM")
|
||||
set(LEANC_EXTRA_FLAGS "${LEANC_EXTRA_FLAGS} -D LEAN_LLVM")
|
||||
string(APPEND LEAN_EXTRA_CXX_FLAGS " -D LEAN_LLVM")
|
||||
else()
|
||||
#message(WARNING "Disabling LLVM support. JIT compilation will not be available")
|
||||
endif()
|
||||
|
|
@ -190,7 +178,7 @@ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-DNDEBUG")
|
|||
# SPLIT_STACK
|
||||
if (SPLIT_STACK)
|
||||
if ((${CMAKE_SYSTEM_NAME} MATCHES "Linux") AND ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU"))
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsplit-stack -D LEAN_USE_SPLIT_STACK")
|
||||
string(APPEND CMAKE_CXX_FLAGS " -fsplit-stack -D LEAN_USE_SPLIT_STACK")
|
||||
message(STATUS "Using split-stacks")
|
||||
else()
|
||||
message(FATAL_ERROR "Split-stacks are only supported on Linux with g++")
|
||||
|
|
@ -205,7 +193,7 @@ if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
|||
message(FATAL_ERROR "${PROJECT_NAME} requires g++ 4.9 or greater.")
|
||||
endif ()
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__CLANG__")
|
||||
string(APPEND CMAKE_CXX_FLAGS " -D__CLANG__")
|
||||
elseif (MSVC)
|
||||
# All good. Maybe enforce a recent version?
|
||||
set(CMAKE_CXX_FLAGS "/GL /EHsc /W2 /Zc:implicitNoexcept- -D_SCL_SECURE_NO_WARNINGS ${CMAKE_CXX_FLAGS}")
|
||||
|
|
@ -269,55 +257,64 @@ include_directories(${CMAKE_BINARY_DIR}/include)
|
|||
# libleancpp/Lean as well as libleanrt/Init/Std are cyclically dependent. This works by default on macOS, which also doesn't like
|
||||
# the linker flags necessary on other platforms.
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set(LEANC_STATIC_LINKER_FLAGS "-lleancpp -lInit -lStd -lLean -lleanrt")
|
||||
string(APPEND LEANC_STATIC_LINKER_FLAGS " -lleancpp -lInit -lStd -lLean -lleanrt")
|
||||
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Emscripten")
|
||||
set(LEANC_STATIC_LINKER_FLAGS "-lleancpp -lInit -lStd -lLean -lnodefs.js -lleanrt")
|
||||
string(APPEND LEANC_STATIC_LINKER_FLAGS " -lleancpp -lInit -lStd -lLean -lnodefs.js -lleanrt")
|
||||
else()
|
||||
set(LEANC_STATIC_LINKER_FLAGS "-Wl,--start-group -lleancpp -lLean -Wl,--end-group -Wl,--start-group -lInit -lStd -lleanrt -Wl,--end-group")
|
||||
string(APPEND LEANC_STATIC_LINKER_FLAGS " -Wl,--start-group -lleancpp -lLean -Wl,--end-group -Wl,--start-group -lInit -lStd -lleanrt -Wl,--end-group")
|
||||
endif()
|
||||
|
||||
set(LEAN_CXX_STDLIB "-lstdc++" CACHE STRING "C++ stdlib linker flags")
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set(LEANC_STATIC_LINKER_FLAGS "${LEANC_STATIC_LINKER_FLAGS} -lc++")
|
||||
set(LEANSHARED_LINKER_FLAGS "${LEANSHARED_LINKER_FLAGS} -lc++")
|
||||
else()
|
||||
set(LEANC_STATIC_LINKER_FLAGS "${LEANC_STATIC_LINKER_FLAGS} -lstdc++")
|
||||
set(LEANSHARED_LINKER_FLAGS "${LEANSHARED_LINKER_FLAGS} -lstdc++")
|
||||
set(LEAN_CXX_STDLIB "-lc++")
|
||||
endif()
|
||||
|
||||
set(LEANC_STATIC_LINKER_FLAGS "${LEANC_STATIC_LINKER_FLAGS} -lm")
|
||||
set(LEANSHARED_LINKER_FLAGS "${LEANSHARED_LINKER_FLAGS} -lm")
|
||||
string(APPEND LEANC_STATIC_LINKER_FLAGS " ${LEAN_CXX_STDLIB}")
|
||||
string(APPEND LEANSHARED_LINKER_FLAGS " ${LEAN_CXX_STDLIB}")
|
||||
|
||||
# get rid of unused parts of C++ stdlib
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
string(APPEND LEANSHARED_LINKER_FLAGS " -Wl,-dead_strip")
|
||||
else()
|
||||
string(APPEND LEANSHARED_LINKER_FLAGS " -Wl,--gc-sections")
|
||||
endif()
|
||||
|
||||
if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
string(APPEND LEANC_STATIC_LINKER_FLAGS " -lm")
|
||||
string(APPEND LEANSHARED_LINKER_FLAGS " -lm")
|
||||
endif()
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
if(BSYMBOLIC)
|
||||
set(LEANC_SHARED_LINKER_FLAGS "${LEANC_SHARED_LINKER_FLAGS} -Wl,-Bsymbolic")
|
||||
set(LEANSHARED_LINKER_FLAGS "${LEANSHARED_LINKER_FLAGS} -Wl,-Bsymbolic")
|
||||
string(APPEND LEANC_SHARED_LINKER_FLAGS " -Wl,-Bsymbolic")
|
||||
string(APPEND LEANSHARED_LINKER_FLAGS " -Wl,-Bsymbolic")
|
||||
endif()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -ftls-model=initial-exec")
|
||||
set(LEANC_EXTRA_FLAGS "${LEANC_EXTRA_FLAGS} -fPIC")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath=\\\$ORIGIN/../lib:\\\$ORIGIN/../lib/lean")
|
||||
string(APPEND CMAKE_CXX_FLAGS " -fPIC -ftls-model=initial-exec")
|
||||
string(APPEND LEANC_EXTRA_FLAGS " -fPIC")
|
||||
string(APPEND LEANSHARED_LINKER_FLAGS " -Wl,-rpath=\\$$ORIGIN/..:\\$$ORIGIN")
|
||||
string(APPEND CMAKE_EXE_LINKER_FLAGS " -Wl,-rpath=\\\$ORIGIN/../lib:\\\$ORIGIN/../lib/lean")
|
||||
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftls-model=initial-exec")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath,@executable_path/../lib -Wl,-rpath,@executable_path/../lib/lean")
|
||||
set(LEANSHARED_LINKER_FLAGS "${LEANSHARED_LINKER_FLAGS} -install_name @rpath/libleanshared.dylib")
|
||||
string(APPEND CMAKE_CXX_FLAGS " -ftls-model=initial-exec")
|
||||
string(APPEND LEANSHARED_LINKER_FLAGS " -install_name @rpath/libleanshared.dylib")
|
||||
string(APPEND CMAKE_EXE_LINKER_FLAGS " -Wl,-rpath,@executable_path/../lib -Wl,-rpath,@executable_path/../lib/lean")
|
||||
endif()
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
set(LEAN_EXTRA_LINKER_FLAGS "${LEAN_LINKER_FLAGS} -ldl")
|
||||
string(APPEND LEAN_EXTRA_LINKER_FLAGS " -ldl")
|
||||
endif()
|
||||
|
||||
if(NOT(${CMAKE_SYSTEM_NAME} MATCHES "Windows"))
|
||||
# export symbols for the interpreter (done via `LEAN_EXPORT` for Windows)
|
||||
set(LEAN_DYN_EXE_LINKER_FLAGS "${LEAN_DYN_EXE_LINKER_FLAGS} -rdynamic")
|
||||
string(APPEND LEAN_DYN_EXE_LINKER_FLAGS " -rdynamic")
|
||||
# hide all other symbols
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden")
|
||||
set(LEANC_EXTRA_FLAGS "${LEANC_EXTRA_FLAGS} -fvisibility=hidden")
|
||||
string(APPEND CMAKE_CXX_FLAGS " -fvisibility=hidden -fvisibility-inlines-hidden")
|
||||
string(APPEND LEANC_EXTRA_FLAGS " -fvisibility=hidden")
|
||||
endif()
|
||||
|
||||
# On Windows, add bcrypt for random number generation
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
set(LEANC_STATIC_LINKER_FLAGS "${LEANC_STATIC_LINKER_FLAGS} -lbcrypt")
|
||||
set(LEANC_SHARED_LINKER_FLAGS "${LEANC_SHARED_LINKER_FLAGS} -lbcrypt")
|
||||
set(LEANSHARED_LINKER_FLAGS "${LEANSHARED_LINKER_FLAGS} -lbcrypt")
|
||||
string(APPEND LEAN_EXTRA_LINKER_FLAGS " -lbcrypt")
|
||||
endif()
|
||||
|
||||
# Allow `lean` symbols in plugins without linking directly against it. If we linked against the
|
||||
|
|
@ -325,15 +322,14 @@ endif()
|
|||
# are already loaded) and probably fail unless we set up LD_LIBRARY_PATH.
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
# import library created by the `leanshared` target
|
||||
set(LEANC_SHARED_LINKER_FLAGS "${LEANC_SHARED_LINKER_FLAGS} -lleanshared")
|
||||
string(APPEND LEANC_SHARED_LINKER_FLAGS " -lleanshared")
|
||||
elseif("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
|
||||
set(LEANC_SHARED_LINKER_FLAGS "${LEANC_SHARED_LINKER_FLAGS} -Wl,-undefined,dynamic_lookup")
|
||||
string(APPEND LEANC_SHARED_LINKER_FLAGS " -Wl,-undefined,dynamic_lookup")
|
||||
endif()
|
||||
# Linux ignores undefined symbols in shared libraries by default
|
||||
|
||||
if(MULTI_THREAD AND NOT MSVC AND (NOT ("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")))
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread")
|
||||
set(LEANC_EXTRA_FLAGS "${LEANC_EXTRA_FLAGS} -pthread")
|
||||
string(APPEND LEAN_EXTRA_LINKER_FLAGS " -pthread")
|
||||
endif()
|
||||
|
||||
# Git HASH
|
||||
|
|
@ -375,9 +371,9 @@ else()
|
|||
set(LEAN_IS_STAGE0 "#define LEAN_IS_STAGE0 0")
|
||||
endif()
|
||||
configure_file("${LEAN_SOURCE_DIR}/config.h.in" "${LEAN_BINARY_DIR}/include/lean/config.h")
|
||||
install(DIRECTORY ${LEAN_BINARY_DIR}/include/lean DESTINATION include)
|
||||
install(DIRECTORY ${LEAN_BINARY_DIR}/include/ DESTINATION include)
|
||||
configure_file(${LEAN_SOURCE_DIR}/lean.mk.in ${LEAN_BINARY_DIR}/share/lean/lean.mk)
|
||||
install(DIRECTORY ${LEAN_BINARY_DIR}/share/lean DESTINATION share)
|
||||
install(DIRECTORY ${LEAN_BINARY_DIR}/share/ DESTINATION share)
|
||||
|
||||
include_directories(${LEAN_SOURCE_DIR})
|
||||
include_directories(${CMAKE_BINARY_DIR}) # version.h etc., "private" headers
|
||||
|
|
@ -386,8 +382,8 @@ include_directories(${CMAKE_BINARY_DIR}/include) # config.h etc., "public" head
|
|||
string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
|
||||
# These are used in lean.mk (and libleanrt) and passed through by stdlib.make
|
||||
# They are not embedded into `leanc` since they are build profile/machine specific
|
||||
set(LEANC_OPTS "${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}}")
|
||||
if(CMAKE_OSX_SYSROOT)
|
||||
string(APPEND LEANC_OPTS " ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}}")
|
||||
if(CMAKE_OSX_SYSROOT AND NOT LEAN_STANDALONE)
|
||||
string(APPEND LEANC_OPTS " ${CMAKE_CXX_SYSROOT_FLAG}${CMAKE_OSX_SYSROOT}")
|
||||
endif()
|
||||
if(CMAKE_OSX_DEPLOYMENT_TARGET)
|
||||
|
|
@ -443,7 +439,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|||
else()
|
||||
set(LEANSHARED_LINKER_FLAGS "-Wl,--whole-archive -lInit -lStd -lLean -lleancpp -Wl,--no-whole-archive ${CMAKE_BINARY_DIR}/runtime/libleanrt_initial-exec.a ${LEANSHARED_LINKER_FLAGS}")
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
set(LEANSHARED_LINKER_FLAGS "${LEANSHARED_LINKER_FLAGS} -Wl,--out-implib,${CMAKE_BINARY_DIR}/lib/lean/libleanshared.dll.a")
|
||||
string(APPEND LEANSHARED_LINKER_FLAGS " -Wl,--out-implib,${CMAKE_BINARY_DIR}/lib/lean/libleanshared.dll.a")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
|
@ -516,9 +512,9 @@ add_custom_target(clean-stdlib
|
|||
add_custom_target(clean-olean
|
||||
DEPENDS clean-stdlib)
|
||||
|
||||
install(DIRECTORY "${CMAKE_BINARY_DIR}/lib/lean" DESTINATION lib)
|
||||
|
||||
install(CODE "execute_process(COMMAND sh -c \"cp ${CMAKE_BINARY_DIR}/lib/*.* \${CMAKE_INSTALL_PREFIX}/lib\")")
|
||||
install(DIRECTORY "${CMAKE_BINARY_DIR}/lib/" DESTINATION lib
|
||||
PATTERN src EXCLUDE # symlink
|
||||
PATTERN temp EXCLUDE)
|
||||
|
||||
# symlink source into expected installation location for go-to-definition, if file system allows it
|
||||
if(${STAGE} EQUAL 0)
|
||||
|
|
@ -533,6 +529,10 @@ install(DIRECTORY "${CMAKE_SOURCE_DIR}" DESTINATION lib/lean
|
|||
PATTERN "*.md"
|
||||
PATTERN examples EXCLUDE)
|
||||
|
||||
if(${STAGE} GREATER 0)
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/../LICENSE" "${CMAKE_SOURCE_DIR}/../LICENSES" DESTINATION ".")
|
||||
endif()
|
||||
|
||||
file(COPY ${CMAKE_SOURCE_DIR}/include/lean DESTINATION ${CMAKE_BINARY_DIR}/include
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
|
||||
|
|
@ -543,7 +543,7 @@ string(TOLOWER ${CMAKE_SYSTEM_NAME} LOWER_SYSTEM_NAME)
|
|||
string(TIMESTAMP COMPILE_DATETIME "%Y%m%d%H%M%S")
|
||||
set(CPACK_PACKAGE_VERSION "${LEAN_VERSION_STRING}.${COMPILE_DATETIME}")
|
||||
if(NOT (${GIT_SHA1} MATCHES ""))
|
||||
set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}.git${GIT_SHA1}")
|
||||
string(APPEND CPACK_PACKAGE_VERSION ".git${GIT_SHA1}")
|
||||
endif()
|
||||
set(CPACK_PACKAGE_FILE_NAME "lean-${LEAN_VERSION_STRING}-${LOWER_SYSTEM_NAME}")
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
|
|
@ -551,4 +551,11 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|||
else()
|
||||
SET(CPACK_GENERATOR ZIP)
|
||||
endif()
|
||||
|
||||
set(LEAN_INSTALL_PREFIX "" CACHE STRING "If set, set CMAKE_INSTALL_PREFIX to this value + version name")
|
||||
if(LEAN_INSTALL_PREFIX)
|
||||
set(CMAKE_INSTALL_PREFIX "${LEAN_INSTALL_PREFIX}/${CPACK_PACKAGE_FILE_NAME}")
|
||||
endif()
|
||||
|
||||
# NOTE: modifies `CPACK_PACKAGE_FILE_NAME`(??)
|
||||
include(CPack)
|
||||
|
|
|
|||
4
stage0/src/Init/Control/Except.lean
generated
4
stage0/src/Init/Control/Except.lean
generated
|
|
@ -135,6 +135,10 @@ end MonadExcept
|
|||
@[inline] def observing {ε α : Type u} {m : Type u → Type v} [Monad m] [MonadExcept ε m] (x : m α) : m (Except ε α) :=
|
||||
tryCatch (do let a ← x; pure (Except.ok a)) (fun ex => pure (Except.error ex))
|
||||
|
||||
def liftExcept [MonadExceptOf ε m] [Pure m] : Except ε α → m α
|
||||
| Except.ok a => pure a
|
||||
| Except.error e => throw e
|
||||
|
||||
instance (ε : Type u) (m : Type u → Type v) [Monad m] : MonadControl m (ExceptT ε m) where
|
||||
stM := Except ε
|
||||
liftWith f := liftM <| f fun x => x.run
|
||||
|
|
|
|||
43
stage0/src/Init/Data/String/Basic.lean
generated
43
stage0/src/Init/Data/String/Basic.lean
generated
|
|
@ -244,11 +244,6 @@ def forward : Iterator → Nat → Iterator
|
|||
def remainingToString : Iterator → String
|
||||
| ⟨s, i⟩ => s.extract i s.bsize
|
||||
|
||||
/-- `(isPrefixOfRemaining it₁ it₂)` is `true` iff `it₁.remainingToString` is a prefix
|
||||
of `it₂.remainingToString`. -/
|
||||
def isPrefixOfRemaining : Iterator → Iterator → Bool
|
||||
| ⟨s₁, i₁⟩, ⟨s₂, i₂⟩ => s₁.extract i₁ s₁.bsize = s₂.extract i₂ (i₂ + (s₁.bsize - i₁))
|
||||
|
||||
def nextn : Iterator → Nat → Iterator
|
||||
| it, 0 => it
|
||||
| it, i+1 => nextn it.next i
|
||||
|
|
@ -320,15 +315,34 @@ def toNat? (s : String) : Option Nat :=
|
|||
else
|
||||
none
|
||||
|
||||
/-- Return true iff `p` is a prefix of `s` -/
|
||||
partial def isPrefixOf (p : String) (s : String) : Bool :=
|
||||
let rec loop (i : Pos) :=
|
||||
if p.atEnd i then true
|
||||
/--
|
||||
Return `true` iff the substring of length `sz` starting at position `off1` in `s1` is equal to that starting at `off2` in `s2.`.
|
||||
False if either substring of that length does not exist. -/
|
||||
partial def substrEq (s1 : String) (off1 : String.Pos) (s2 : String) (off2 : String.Pos) (sz : Nat) : Bool :=
|
||||
off1 + sz ≤ s1.bsize && off2 + sz ≤ s2.bsize && loop off1 off2 (off1 + sz)
|
||||
where
|
||||
loop (off1 off2 stop1 : Pos) :=
|
||||
if off1 >= stop1 then true
|
||||
else
|
||||
let c₁ := p.get i
|
||||
let c₂ := s.get i
|
||||
c₁ == c₂ && loop (s.next i)
|
||||
p.length ≤ s.length && loop 0
|
||||
let c₁ := s1.get off1
|
||||
let c₂ := s2.get off2
|
||||
c₁ == c₂ && loop (off1 + csize c₁) (off2 + csize c₂) stop1
|
||||
|
||||
/-- Return true iff `p` is a prefix of `s` -/
|
||||
def isPrefixOf (p : String) (s : String) : Bool :=
|
||||
substrEq p 0 s 0 p.bsize
|
||||
|
||||
/-- Replace all occurrences of `pattern` in `s` with `replacment`. -/
|
||||
partial def replace (s pattern replacement : String) : String :=
|
||||
loop "" 0 0
|
||||
where
|
||||
loop (acc : String) (accStop pos : String.Pos) :=
|
||||
if pos + pattern.bsize > s.bsize then
|
||||
acc ++ s.extract accStop s.bsize
|
||||
else if s.substrEq pos pattern 0 pattern.bsize then
|
||||
loop (acc ++ s.extract accStop pos ++ replacement) (pos + pattern.bsize) (pos + pattern.bsize)
|
||||
else
|
||||
loop acc accStop (s.next pos)
|
||||
|
||||
end String
|
||||
|
||||
|
|
@ -491,8 +505,7 @@ def toNat? (s : Substring) : Option Nat :=
|
|||
none
|
||||
|
||||
def beq (ss1 ss2 : Substring) : Bool :=
|
||||
-- TODO: should not allocate
|
||||
ss1.bsize == ss2.bsize && ss1.toString == ss2.toString
|
||||
ss1.bsize == ss2.bsize && ss1.str.substrEq ss1.startPos ss2.str ss2.startPos ss1.bsize
|
||||
|
||||
instance hasBeq : BEq Substring := ⟨beq⟩
|
||||
|
||||
|
|
|
|||
2
stage0/src/Init/Notation.lean
generated
2
stage0/src/Init/Notation.lean
generated
|
|
@ -113,7 +113,7 @@ macro_rules | `($x > $y) => `(binrel% GT.gt $x $y)
|
|||
macro_rules | `($x >= $y) => `(binrel% GE.ge $x $y)
|
||||
macro_rules | `($x ≥ $y) => `(binrel% GE.ge $x $y)
|
||||
macro_rules | `($x = $y) => `(binrel% Eq $x $y)
|
||||
macro_rules | `($x == $y) => `(binrel% BEq.beq $x $y)
|
||||
macro_rules | `($x == $y) => `(binrel_no_prop% BEq.beq $x $y)
|
||||
|
||||
infixr:35 " /\\ " => And
|
||||
infixr:35 " ∧ " => And
|
||||
|
|
|
|||
1
stage0/src/Lean/Compiler.lean
generated
1
stage0/src/Lean/Compiler.lean
generated
|
|
@ -12,3 +12,4 @@ import Lean.Compiler.ImplementedByAttr
|
|||
import Lean.Compiler.NeverExtractAttr
|
||||
import Lean.Compiler.IR
|
||||
import Lean.Compiler.CSimpAttr
|
||||
import Lean.Compiler.FFI
|
||||
|
|
|
|||
25
stage0/src/Lean/Compiler/FFI.lean
generated
Normal file
25
stage0/src/Lean/Compiler/FFI.lean
generated
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
/-
|
||||
Copyright (c) 2021 Sebastian Ullrich. All rights reserved.
|
||||
Released under Apache 2.0 license as described in the file LICENSE.
|
||||
Authors: Sebastian Ullrich
|
||||
-/
|
||||
|
||||
open System
|
||||
|
||||
namespace Lean.Compiler.FFI
|
||||
|
||||
@[extern "lean_get_leanc_extra_flags"]
|
||||
private constant getLeancExtraFlags : Unit → String
|
||||
|
||||
/-- Return C compiler flags for including Lean's headers. -/
|
||||
def getCFlags (leanSysroot : FilePath) : Array String :=
|
||||
#["-I", (leanSysroot / "include").toString] ++ (getLeancExtraFlags ()).trim.splitOn
|
||||
|
||||
@[extern "lean_get_linker_flags"]
|
||||
private constant getBuiltinLinkerFlags (linkStatic : Bool) : String
|
||||
|
||||
/-- Return linker flags for linking against Lean's libraries. -/
|
||||
def getLinkerFlags (leanSysroot : FilePath) (linkStatic := true) (gmp := "-lgmp") : Array String :=
|
||||
#["-L", (leanSysroot / "lib" / "lean").toString] ++ (getBuiltinLinkerFlags linkStatic).trim.splitOn ++ [gmp]
|
||||
|
||||
end Lean.Compiler.FFI
|
||||
8
stage0/src/Lean/Elab/BuiltinCommand.lean
generated
8
stage0/src/Lean/Elab/BuiltinCommand.lean
generated
|
|
@ -209,16 +209,18 @@ private def replaceBinderAnnotation (binder : Syntax) : CommandElabM Bool := do
|
|||
|
||||
open Meta
|
||||
|
||||
@[builtinCommandElab Lean.Parser.Command.check] def elabCheck : CommandElab
|
||||
def elabCheckCore (ignoreStuckTC : Bool) : CommandElab
|
||||
| `(#check%$tk $term) => withoutModifyingEnv $ runTermElabM (some `_check) fun _ => do
|
||||
let e ← Term.elabTerm term none
|
||||
Term.synthesizeSyntheticMVarsNoPostponing (ignoreStuckTC := true)
|
||||
Term.synthesizeSyntheticMVarsNoPostponing (ignoreStuckTC := ignoreStuckTC)
|
||||
let (e, _) ← Term.levelMVarToParam (← instantiateMVars e)
|
||||
let type ← inferType e
|
||||
unless e.isSyntheticSorry do
|
||||
logInfoAt tk m!"{e} : {type}"
|
||||
| _ => throwUnsupportedSyntax
|
||||
|
||||
@[builtinCommandElab Lean.Parser.Command.check] def elabCheck : CommandElab := elabCheckCore (ignoreStuckTC := true)
|
||||
|
||||
@[builtinCommandElab Lean.Parser.Command.reduce] def elabReduce : CommandElab
|
||||
| `(#reduce%$tk $term) => withoutModifyingEnv <| runTermElabM (some `_check) fun _ => do
|
||||
let e ← Term.elabTerm term none
|
||||
|
|
@ -256,7 +258,7 @@ def failIfSucceeds (x : CommandElabM Unit) : CommandElabM Unit := do
|
|||
|
||||
@[builtinCommandElab «check_failure»] def elabCheckFailure : CommandElab
|
||||
| `(#check_failure $term) => do
|
||||
failIfSucceeds <| elabCheck (← `(#check $term))
|
||||
failIfSucceeds <| elabCheckCore (ignoreStuckTC := false) (← `(#check $term))
|
||||
| _ => throwUnsupportedSyntax
|
||||
|
||||
private def mkEvalInstCore (evalClassName : Name) (e : Expr) : MetaM Expr := do
|
||||
|
|
|
|||
13
stage0/src/Lean/Elab/Command.lean
generated
13
stage0/src/Lean/Elab/Command.lean
generated
|
|
@ -216,7 +216,7 @@ private def mkInfoTree (elaborator : Name) (stx : Syntax) (trees : Std.Persisten
|
|||
} tree
|
||||
|
||||
private def elabCommandUsing (s : State) (stx : Syntax) : List (KeyedDeclsAttribute.AttributeEntry CommandElab) → CommandElabM Unit
|
||||
| [] => throwError "unexpected syntax{indentD stx}"
|
||||
| [] => withInfoTreeContext (mkInfoTree := mkInfoTree `no_elab stx) <| throwError "unexpected syntax{indentD stx}"
|
||||
| (elabFn::elabFns) =>
|
||||
catchInternalId unsupportedSyntaxExceptionId
|
||||
(withInfoTreeContext (mkInfoTree := mkInfoTree elabFn.declName stx) <| elabFn.value stx)
|
||||
|
|
@ -267,13 +267,16 @@ partial def elabCommand (stx : Syntax) : CommandElabM Unit := do
|
|||
trace `Elab.command fun _ => stx;
|
||||
let s ← get
|
||||
match (← liftMacroM <| expandMacroImpl? s.env stx) with
|
||||
| some (decl, stxNew) =>
|
||||
| some (decl, stxNew?) =>
|
||||
withInfoTreeContext (mkInfoTree := mkInfoTree decl stx) do
|
||||
withMacroExpansion stx stxNew do
|
||||
elabCommand stxNew
|
||||
let stxNew ← liftMacroM <| liftExcept stxNew?
|
||||
withMacroExpansion stx stxNew do
|
||||
elabCommand stxNew
|
||||
| _ =>
|
||||
match commandElabAttribute.getEntries s.env k with
|
||||
| [] => throwError "elaboration function for '{k}' has not been implemented"
|
||||
| [] =>
|
||||
withInfoTreeContext (mkInfoTree := mkInfoTree `no_elab stx) <|
|
||||
throwError "elaboration function for '{k}' has not been implemented"
|
||||
| elabFns => elabCommandUsing s stx elabFns
|
||||
| _ => throwError "unexpected command"
|
||||
|
||||
|
|
|
|||
4
stage0/src/Lean/Elab/Frontend.lean
generated
4
stage0/src/Lean/Elab/Frontend.lean
generated
|
|
@ -94,10 +94,10 @@ def getPrintMessageEndPos (opts : Options) : Bool :=
|
|||
opts.getBool `printMessageEndPos false
|
||||
|
||||
@[export lean_run_frontend]
|
||||
def runFrontend (input : String) (opts : Options) (fileName : String) (mainModuleName : Name) : IO (Environment × Bool) := do
|
||||
def runFrontend (input : String) (opts : Options) (fileName : String) (mainModuleName : Name) (trustLevel : UInt32 := 0) : IO (Environment × Bool) := do
|
||||
let inputCtx := Parser.mkInputContext input fileName
|
||||
let (header, parserState, messages) ← Parser.parseHeader inputCtx
|
||||
let (env, messages) ← processHeader header opts messages inputCtx
|
||||
let (env, messages) ← processHeader header opts messages inputCtx trustLevel
|
||||
let env := env.setMainModule mainModuleName
|
||||
let s ← IO.processCommands inputCtx parserState (Command.mkState env messages opts)
|
||||
for msg in s.commandState.messages.toList do
|
||||
|
|
|
|||
17
stage0/src/Lean/Elab/StructInst.lean
generated
17
stage0/src/Lean/Elab/StructInst.lean
generated
|
|
@ -851,7 +851,22 @@ private def elabStructInstAux (stx : Syntax) (expectedType? : Option Expr) (sour
|
|||
let struct ← liftMacroM <| mkStructView stx structName source
|
||||
let struct ← expandStruct struct
|
||||
trace[Elab.struct] "{struct}"
|
||||
let (r, struct) ← elabStruct struct expectedType?
|
||||
/- We try to synthesize pending problems with `withSynthesize` combinator before trying to use default values.
|
||||
This is important in examples such as
|
||||
```
|
||||
structure MyStruct where
|
||||
{α : Type u}
|
||||
{β : Type v}
|
||||
a : α
|
||||
b : β
|
||||
|
||||
#check { a := 10, b := true : MyStruct }
|
||||
```
|
||||
were the `α` will remain "unknown" until the default instance for `OfNat` is used to ensure that `10` is a `Nat`.
|
||||
|
||||
TODO: investigate whether this design decision may have unintended side effects or produce confusing behavior.
|
||||
-/
|
||||
let (r, struct) ← withSynthesize (mayPostpone := true) <| elabStruct struct expectedType?
|
||||
trace[Elab.struct] "before propagate {r}"
|
||||
DefaultFields.propagate struct
|
||||
return r
|
||||
|
|
|
|||
11
stage0/src/Lean/Elab/Structure.lean
generated
11
stage0/src/Lean/Elab/Structure.lean
generated
|
|
@ -39,7 +39,8 @@ structure StructFieldView where
|
|||
binderInfo : BinderInfo
|
||||
inferMod : Bool
|
||||
declName : Name
|
||||
name : Name
|
||||
name : Name -- The field name as it is going to be registered in the kernel. It does not include macroscopes.
|
||||
rawName : Name -- Same as `name` but including macroscopes.
|
||||
binders : Syntax
|
||||
type? : Option Syntax
|
||||
value? : Option Syntax
|
||||
|
|
@ -208,7 +209,8 @@ private def expandFields (structStx : Syntax) (structModifiers : Modifiers) (str
|
|||
pure (some optBinderTacticDefault[0][1])
|
||||
let idents := fieldBinder[2].getArgs
|
||||
idents.foldlM (init := views) fun (views : Array StructFieldView) ident => withRef ident do
|
||||
let name := ident.getId.eraseMacroScopes
|
||||
let rawName := ident.getId
|
||||
let name := rawName.eraseMacroScopes
|
||||
unless name.isAtomic do
|
||||
throwErrorAt ident "invalid field name '{name.eraseMacroScopes}', field names must be atomic"
|
||||
let declName := structDeclName ++ name
|
||||
|
|
@ -221,6 +223,7 @@ private def expandFields (structStx : Syntax) (structModifiers : Modifiers) (str
|
|||
inferMod
|
||||
declName
|
||||
name
|
||||
rawName
|
||||
binders
|
||||
type?
|
||||
value?
|
||||
|
|
@ -543,13 +546,13 @@ where
|
|||
match type?, value? with
|
||||
| none, none => throwError "invalid field, type expected"
|
||||
| some type, _ =>
|
||||
withLocalDecl view.name view.binderInfo type fun fieldFVar =>
|
||||
withLocalDecl view.rawName view.binderInfo type fun fieldFVar =>
|
||||
let infos := infos.push { name := view.name, declName := view.declName, fvar := fieldFVar, value? := value?,
|
||||
kind := StructFieldKind.newField, inferMod := view.inferMod }
|
||||
go (i+1) defaultValsOverridden infos
|
||||
| none, some value =>
|
||||
let type ← inferType value
|
||||
withLocalDecl view.name view.binderInfo type fun fieldFVar =>
|
||||
withLocalDecl view.rawName view.binderInfo type fun fieldFVar =>
|
||||
let infos := infos.push { name := view.name, declName := view.declName, fvar := fieldFVar, value? := value,
|
||||
kind := StructFieldKind.newField, inferMod := view.inferMod }
|
||||
go (i+1) defaultValsOverridden infos
|
||||
|
|
|
|||
55
stage0/src/Lean/Elab/Tactic/Simp.lean
generated
55
stage0/src/Lean/Elab/Tactic/Simp.lean
generated
|
|
@ -53,7 +53,7 @@ inductive Simp.DischargeWrapper where
|
|||
| default
|
||||
| custom (ref : IO.Ref Term.State) (discharge : Simp.Discharge)
|
||||
|
||||
def Simp.DischargeWrapper.with (w : Simp.DischargeWrapper) (x : Option Simp.Discharge → MetaM α) : TacticM α := do
|
||||
def Simp.DischargeWrapper.with (w : Simp.DischargeWrapper) (x : Option Simp.Discharge → TacticM α) : TacticM α := do
|
||||
match w with
|
||||
| default => x none
|
||||
| custom ref d =>
|
||||
|
|
@ -162,8 +162,6 @@ where
|
|||
else
|
||||
Term.elabCDotFunctionAlias? simpArgTerm
|
||||
|
||||
abbrev FVarIdToLemmaId := FVarIdMap Name
|
||||
|
||||
-- TODO: move?
|
||||
private def getPropHyps : MetaM (Array FVarId) := do
|
||||
let mut result := #[]
|
||||
|
|
@ -215,28 +213,47 @@ def mkSimpContext (stx : Syntax) (eraseLocal : Bool) (ctx := false) (ignoreStarA
|
|||
ctx := { ctx with simpLemmas }
|
||||
return { ctx, fvarIdToLemmaId, dischargeWrapper }
|
||||
|
||||
/--
|
||||
`simpLocation ctx discharge? varIdToLemmaId loc`
|
||||
runs the simplifier at locations specified by `loc`,
|
||||
using the simp lemmas collected in `ctx`
|
||||
optionally running a discharger specified in `discharge?` on generated subgoals.
|
||||
(Local hypotheses which have been added to the simp lemmas must be recorded in
|
||||
`fvarIdToLemmaId`.)
|
||||
|
||||
Its primary use is as the implementation of the
|
||||
`simp [...] at ...` and `simp only [...] at ...` syntaxes,
|
||||
but can also be used by other tactics when a `Syntax` is not available.
|
||||
|
||||
For many tactics other than the simplifier,
|
||||
one should use the `withLocation` tactic combinator
|
||||
when working with a `location`.
|
||||
-/
|
||||
def simpLocation (ctx : Simp.Context) (discharge? : Option Simp.Discharge := none) (fvarIdToLemmaId : FVarIdToLemmaId := {}) (loc : Location) : TacticM Unit := do
|
||||
match loc with
|
||||
| Location.targets hUserNames simplifyTarget =>
|
||||
withMainContext do
|
||||
let fvarIds ← hUserNames.mapM fun hUserName => return (← getLocalDeclFromUserName hUserName).fvarId
|
||||
go fvarIds simplifyTarget fvarIdToLemmaId
|
||||
| Location.wildcard =>
|
||||
withMainContext do
|
||||
go (← getNondepPropHyps (← getMainGoal)) (simplifyTarget := true) fvarIdToLemmaId
|
||||
where
|
||||
go (fvarIdsToSimp : Array FVarId) (simplifyTarget : Bool) (fvarIdToLemmaId : Lean.Meta.FVarIdToLemmaId) : TacticM Unit := do
|
||||
let mvarId ← getMainGoal
|
||||
let result? ← simpGoal mvarId ctx (simplifyTarget := simplifyTarget) (discharge? := discharge?) (fvarIdsToSimp := fvarIdsToSimp) (fvarIdToLemmaId := fvarIdToLemmaId)
|
||||
match result? with
|
||||
| none => replaceMainGoal []
|
||||
| some (_, mvarId) => replaceMainGoal [mvarId]
|
||||
|
||||
/-
|
||||
"simp " (config)? (discharger)? ("only ")? ("[" simpLemma,* "]")? (location)?
|
||||
-/
|
||||
@[builtinTactic Lean.Parser.Tactic.simp] def evalSimp : Tactic := fun stx => do
|
||||
let { ctx, fvarIdToLemmaId, dischargeWrapper } ← withMainContext <| mkSimpContext stx (eraseLocal := false)
|
||||
-- trace[Meta.debug] "Lemmas {← toMessageData ctx.simpLemmas.post}"
|
||||
let loc := expandOptLocation stx[5]
|
||||
match loc with
|
||||
| Location.targets hUserNames simplifyTarget =>
|
||||
withMainContext do
|
||||
let fvarIds ← hUserNames.mapM fun hUserName => return (← getLocalDeclFromUserName hUserName).fvarId
|
||||
go ctx dischargeWrapper fvarIds simplifyTarget fvarIdToLemmaId
|
||||
| Location.wildcard =>
|
||||
withMainContext do
|
||||
go ctx dischargeWrapper (← getNondepPropHyps (← getMainGoal)) (simplifyTarget := true) fvarIdToLemmaId
|
||||
where
|
||||
go (ctx : Simp.Context) (dischargeWrapper : Simp.DischargeWrapper) (fvarIdsToSimp : Array FVarId) (simplifyTarget : Bool) (fvarIdToLemmaId : FVarIdToLemmaId) : TacticM Unit := do
|
||||
let mvarId ← getMainGoal
|
||||
let result? ← dischargeWrapper.with fun discharge? => return (← simpGoal mvarId ctx (simplifyTarget := simplifyTarget) (discharge? := discharge?) (fvarIdsToSimp := fvarIdsToSimp) (fvarIdToLemmaId := fvarIdToLemmaId)).map (·.2)
|
||||
match result? with
|
||||
| none => replaceMainGoal []
|
||||
| some mvarId => replaceMainGoal [mvarId]
|
||||
dischargeWrapper.with fun discharge? =>
|
||||
simpLocation ctx discharge? fvarIdToLemmaId (expandOptLocation stx[5])
|
||||
|
||||
@[builtinTactic Lean.Parser.Tactic.simpAll] def evalSimpAll : Tactic := fun stx => do
|
||||
let { ctx, .. } ← mkSimpContext stx (eraseLocal := true) (ctx := true) (ignoreStarArg := true)
|
||||
|
|
|
|||
2
stage0/src/Lean/Elab/Tactic/Split.lean
generated
2
stage0/src/Lean/Elab/Tactic/Split.lean
generated
|
|
@ -12,7 +12,7 @@ open Meta
|
|||
|
||||
@[builtinTactic Lean.Parser.Tactic.split] def evalSplit : Tactic := fun stx => do
|
||||
unless stx[1].isNone do
|
||||
throwError "'split' tatic, term to split is not supported yet"
|
||||
throwError "'split' tactic, term to split is not supported yet"
|
||||
liftMetaTactic fun mvarId => do
|
||||
let loc := expandOptLocation stx[2]
|
||||
match loc with
|
||||
|
|
|
|||
2
stage0/src/Lean/Elab/Term.lean
generated
2
stage0/src/Lean/Elab/Term.lean
generated
|
|
@ -1248,7 +1248,7 @@ private partial def elabTermAux (expectedType? : Option Expr) (catchExPostpone :
|
|||
withNestedTraces do
|
||||
let env ← getEnv
|
||||
match (← liftMacroM (expandMacroImpl? env stx)) with
|
||||
| some (decl, stxNew) =>
|
||||
| some (decl, Except.ok stxNew) =>
|
||||
withInfoContext' (mkInfo := mkTermInfo decl (expectedType? := expectedType?) stx) <|
|
||||
withMacroExpansion stx stxNew <|
|
||||
withRef stxNew <|
|
||||
|
|
|
|||
10
stage0/src/Lean/Elab/Util.lean
generated
10
stage0/src/Lean/Elab/Util.lean
generated
|
|
@ -115,14 +115,14 @@ builtin_initialize macroAttribute : KeyedDeclsAttribute Macro ← mkMacroAttribu
|
|||
Try to expand macro at syntax tree root and return macro declaration name and new syntax if successful.
|
||||
Return none if all macros threw `Macro.Exception.unsupportedSyntax`.
|
||||
-/
|
||||
def expandMacroImpl? (env : Environment) : Syntax → MacroM (Option (Name × Syntax)) := fun stx => do
|
||||
def expandMacroImpl? (env : Environment) : Syntax → MacroM (Option (Name × Except Macro.Exception Syntax)) := fun stx => do
|
||||
for e in macroAttribute.getEntries env stx.getKind do
|
||||
try
|
||||
let stx' ← withFreshMacroScope (e.value stx)
|
||||
return (e.declName, stx')
|
||||
return (e.declName, Except.ok stx')
|
||||
catch
|
||||
| Macro.Exception.unsupportedSyntax => pure ()
|
||||
| ex => throw ex
|
||||
| ex => return (e.declName, Except.error ex)
|
||||
return none
|
||||
|
||||
class MonadMacroAdapter (m : Type → Type) where
|
||||
|
|
@ -144,8 +144,8 @@ def liftMacroM {α} {m : Type → Type} [Monad m] [MonadMacroAdapter m] [MonadEn
|
|||
-- TODO: record recursive expansions in info tree?
|
||||
expandMacro? := fun stx => do
|
||||
match (← expandMacroImpl? env stx) with
|
||||
| some (_, stx) => some stx
|
||||
| none => none
|
||||
| some (_, Except.ok stx) => some stx
|
||||
| _ => none
|
||||
hasDecl := fun declName => return env.contains declName
|
||||
getCurrNamespace := return currNamespace
|
||||
resolveNamespace? := fun n => return ResolveName.resolveNamespace? env currNamespace openDecls n
|
||||
|
|
|
|||
33
stage0/src/Lean/Meta/ExprDefEq.lean
generated
33
stage0/src/Lean/Meta/ExprDefEq.lean
generated
|
|
@ -16,6 +16,35 @@ import Lean.Meta.UnificationHint
|
|||
|
||||
namespace Lean.Meta
|
||||
|
||||
/--
|
||||
Return true `b` is of the form `mk a.1 ... a.n`.
|
||||
-/
|
||||
private def isDefEqEtaStruct (a b : Expr) : MetaM Bool :=
|
||||
matchConstCtor b.getAppFn (fun _ => return false) fun ctorVal _ => do
|
||||
if ctorVal.numParams + ctorVal.numFields != b.getAppNumArgs then
|
||||
trace[Meta.isDefEq.eta.struct] "failed, insufficient number of arguments at{indentExpr b}"
|
||||
return false
|
||||
else
|
||||
let inductVal ← getConstInfoInduct ctorVal.induct
|
||||
if inductVal.nctors != 1 then
|
||||
trace[Meta.isDefEq.eta.struct] "failed, type is not a structure{indentExpr b}"
|
||||
return false
|
||||
else checkpointDefEq do
|
||||
let args := b.getAppArgs
|
||||
for i in [ctorVal.numParams : args.size] do
|
||||
match (← whnf args[i]) with
|
||||
| Expr.proj _ j e _ =>
|
||||
unless ctorVal.numParams + j == i do
|
||||
trace[Meta.isDefEq.eta.struct] "failed, unexpect arg #{i}, unexpected projection #{j}, at{indentExpr b}"
|
||||
return false
|
||||
unless (← isDefEq e a) do
|
||||
trace[Meta.isDefEq.eta.struct] "failed, unexpect arg #{i}, argument{e}\nis not defeq to{indentExpr a}"
|
||||
return false
|
||||
| e =>
|
||||
trace[Meta.isDefEq.eta.struct] "failed, projection expected{indentExpr e}"
|
||||
return false
|
||||
return true
|
||||
|
||||
/--
|
||||
Try to solve `a := (fun x => t) =?= b` by eta-expanding `b`.
|
||||
|
||||
|
|
@ -35,7 +64,7 @@ private def isDefEqEta (a b : Expr) : MetaM Bool := do
|
|||
checkpointDefEq <| Meta.isExprDefEqAux a b'
|
||||
| _ => pure false
|
||||
else
|
||||
pure false
|
||||
return false
|
||||
|
||||
/-- Support for `Lean.reduceBool` and `Lean.reduceNat` -/
|
||||
def isDefEqNative (s t : Expr) : MetaM LBool := do
|
||||
|
|
@ -1436,6 +1465,8 @@ private def isDefEqApp (t s : Expr) : MetaM Bool := do
|
|||
|
||||
private def isExprDefEqExpensive (t : Expr) (s : Expr) : MetaM Bool := do
|
||||
if (← (isDefEqEta t s <||> isDefEqEta s t)) then pure true else
|
||||
-- TODO: investigate whether this is the place for putting this check
|
||||
if (← (isDefEqEtaStruct t s <||> isDefEqEtaStruct s t)) then pure true else
|
||||
if (← isDefEqProj t s) then pure true else
|
||||
whenUndefDo (isDefEqNative t s) do
|
||||
whenUndefDo (isDefEqNat t s) do
|
||||
|
|
|
|||
6
stage0/src/Lean/Meta/Tactic/Simp/Rewrite.lean
generated
6
stage0/src/Lean/Meta/Tactic/Simp/Rewrite.lean
generated
|
|
@ -33,10 +33,10 @@ where
|
|||
synthesizeInstance (x type : Expr) : SimpM Bool := do
|
||||
match (← trySynthInstance type) with
|
||||
| LOption.some val =>
|
||||
if (← isDefEq x val) then
|
||||
if (← withReducibleAndInstances <| isDefEq x val) then
|
||||
return true
|
||||
else
|
||||
trace[Meta.Tactic.simp.discharge] "{lemmaName}, failed to assign instance{indentExpr type}"
|
||||
trace[Meta.Tactic.simp.discharge] "{lemmaName}, failed to assign instance{indentExpr type}\nsythesized value{indentExpr val}\nis not definitionally equal to{indentExpr x}"
|
||||
return false
|
||||
| _ =>
|
||||
trace[Meta.Tactic.simp.discharge] "{lemmaName}, failed to synthesize instance{indentExpr type}"
|
||||
|
|
@ -117,7 +117,7 @@ def rewrite (e : Expr) (s : DiscrTree SimpLemma) (erased : Std.PHashSet Name) (d
|
|||
trace[Debug.Meta.Tactic.simp] "no theorems found for {tag}-rewriting {e}"
|
||||
return { expr := e }
|
||||
else
|
||||
let candidates := candidates.insertionSort fun e₁ e₂ => e₁.1.priority < e₂.1.priority
|
||||
let candidates := candidates.insertionSort fun e₁ e₂ => e₁.1.priority > e₂.1.priority
|
||||
for (lemma, numExtraArgs) in candidates do
|
||||
unless inErasedSet lemma do
|
||||
if let some result ← tryLemmaWithExtraArgs? e lemma numExtraArgs discharge? then
|
||||
|
|
|
|||
12
stage0/src/Lean/Parser/Command.lean
generated
12
stage0/src/Lean/Parser/Command.lean
generated
|
|
@ -39,7 +39,7 @@ def terminationSuffix := optional terminationBy >> optional decreasingBy
|
|||
def moduleDoc := leading_parser ppDedent $ "/-!" >> commentBody >> ppLine
|
||||
|
||||
def namedPrio := leading_parser (atomic ("(" >> nonReservedSymbol "priority") >> " := " >> priorityParser >> ")")
|
||||
def optNamedPrio := optional namedPrio
|
||||
def optNamedPrio := optional (ppSpace >> namedPrio)
|
||||
|
||||
def «private» := leading_parser "private "
|
||||
def «protected» := leading_parser "protected "
|
||||
|
|
@ -60,9 +60,11 @@ def optDefDeriving := optional (atomic ("deriving " >> notSymbol "instance") >
|
|||
def «def» := leading_parser "def " >> declId >> optDeclSig >> declVal >> optDefDeriving >> terminationSuffix
|
||||
def «theorem» := leading_parser "theorem " >> declId >> declSig >> declVal >> terminationSuffix
|
||||
def «constant» := leading_parser "constant " >> declId >> declSig >> optional declValSimple
|
||||
def «instance» := leading_parser Term.attrKind >> "instance " >> optNamedPrio >> optional declId >> declSig >> declVal >> terminationSuffix
|
||||
/- As `declSig` starts with a space, "instance" does not need a trailing space if we put `ppSpace` in the optional fragments. -/
|
||||
def «instance» := leading_parser Term.attrKind >> "instance" >> optNamedPrio >> optional (ppSpace >> declId) >> declSig >> declVal >> terminationSuffix
|
||||
def «axiom» := leading_parser "axiom " >> declId >> declSig
|
||||
def «example» := leading_parser "example " >> declSig >> declVal
|
||||
/- As `declSig` starts with a space, "example" does not need a trailing space. -/
|
||||
def «example» := leading_parser "example" >> declSig >> declVal
|
||||
def inferMod := leading_parser atomic (symbol "{" >> "}")
|
||||
def ctor := leading_parser "\n| " >> declModifiers true >> ident >> optional inferMod >> optDeclSig
|
||||
def derivingClasses := sepBy1 (group (ident >> optional (" with " >> Term.structInst))) ", "
|
||||
|
|
@ -79,7 +81,7 @@ def structureTk := leading_parser "structure "
|
|||
def classTk := leading_parser "class "
|
||||
def «extends» := leading_parser " extends " >> sepBy1 termParser ", "
|
||||
def «structure» := leading_parser
|
||||
(structureTk <|> classTk) >> declId >> many Term.bracketedBinder >> optional «extends» >> Term.optType
|
||||
(structureTk <|> classTk) >> declId >> many (ppSpace >> Term.bracketedBinder) >> optional «extends» >> Term.optType
|
||||
>> optional ((symbol " := " <|> " where ") >> optional structCtor >> structFields)
|
||||
>> optDeriving
|
||||
@[builtinCommandParser] def declaration := leading_parser
|
||||
|
|
@ -88,7 +90,7 @@ declModifiers false >> («abbrev» <|> «def» <|> «theorem» <|> «constant»
|
|||
@[builtinCommandParser] def «section» := leading_parser "section " >> optional ident
|
||||
@[builtinCommandParser] def «namespace» := leading_parser "namespace " >> ident
|
||||
@[builtinCommandParser] def «end» := leading_parser "end " >> optional ident
|
||||
@[builtinCommandParser] def «variable» := leading_parser "variable" >> many1 Term.bracketedBinder
|
||||
@[builtinCommandParser] def «variable» := leading_parser "variable" >> many1 (ppSpace >> Term.bracketedBinder)
|
||||
@[builtinCommandParser] def «universe» := leading_parser "universe " >> many1 ident
|
||||
@[builtinCommandParser] def check := leading_parser "#check " >> termParser
|
||||
@[builtinCommandParser] def check_failure := leading_parser "#check_failure " >> termParser -- Like `#check`, but succeeds only if term does not type check
|
||||
|
|
|
|||
|
|
@ -60,8 +60,11 @@ def delabSort : Delab := do
|
|||
|
||||
def unresolveNameGlobal (n₀ : Name) : DelabM Name := do
|
||||
if n₀.hasMacroScopes then return n₀
|
||||
let mut initialNames := #[]
|
||||
if !(← getPPOption getPPFullNames) then initialNames := initialNames ++ getRevAliases (← getEnv) n₀
|
||||
if (← getPPOption getPPFullNames) then
|
||||
match (← resolveGlobalName n₀) with
|
||||
| [(potentialMatch, _)] => if potentialMatch == n₀ then return n₀ else return rootNamespace ++ n₀
|
||||
| _ => return n₀ -- if can't resolve, return the original
|
||||
let mut initialNames := (getRevAliases (← getEnv) n₀).toArray
|
||||
initialNames := initialNames.push (rootNamespace ++ n₀)
|
||||
for initialName in initialNames do
|
||||
match (← unresolveNameCore initialName) with
|
||||
|
|
|
|||
10
stage0/src/Lean/Server/AsyncList.lean
generated
10
stage0/src/Lean/Server/AsyncList.lean
generated
|
|
@ -71,7 +71,7 @@ partial def getAll : AsyncList ε α → List α × Option ε
|
|||
| Except.error e => ⟨[], some e⟩
|
||||
|
||||
/-- Spawns a `Task` waiting on the prefix of elements for which `p` is true. -/
|
||||
partial def waitAll [Coe Error ε] (p : α → Bool := fun _ => true) : AsyncList ε α → IO (Task (List α × Option ε))
|
||||
partial def waitAll [Coe Error ε] (p : α → Bool := fun _ => true) : AsyncList ε α → BaseIO (Task (List α × Option ε))
|
||||
| cons hd tl => do
|
||||
if p hd then
|
||||
let t ← tl.waitAll p
|
||||
|
|
@ -80,7 +80,7 @@ partial def waitAll [Coe Error ε] (p : α → Bool := fun _ => true) : AsyncLis
|
|||
return Task.pure ⟨[hd], none⟩
|
||||
| nil => return Task.pure ⟨[], none⟩
|
||||
| asyncTail tl => do
|
||||
let t : Task (Except IO.Error (List α × Option ε)) ← IO.bindTask tl fun
|
||||
let t : Task (Except IO.Error (List α × Option ε)) ← BaseIO.bindTask tl fun
|
||||
| Except.ok tl => Task.map Except.ok <$> tl.waitAll p
|
||||
| Except.error e => return Task.pure <| Except.ok ⟨[], some e⟩
|
||||
t.map fun
|
||||
|
|
@ -90,20 +90,20 @@ partial def waitAll [Coe Error ε] (p : α → Bool := fun _ => true) : AsyncLis
|
|||
/-- Spawns a `Task` acting like `List.find?` but which will wait for tail evalution
|
||||
when necessary to traverse the list. If the tail terminates before a matching element
|
||||
is found, the task throws the terminating value. -/
|
||||
partial def waitFind? (p : α → Bool) [Coe Error ε] : AsyncList ε α → IO (Task $ Except ε $ Option α)
|
||||
partial def waitFind? (p : α → Bool) [Coe Error ε] : AsyncList ε α → BaseIO (Task $ Except ε $ Option α)
|
||||
| nil => return Task.pure <| Except.ok none
|
||||
| cons hd tl => do
|
||||
if p hd then return Task.pure <| Except.ok <| some hd
|
||||
else tl.waitFind? p
|
||||
| asyncTail tl => do
|
||||
let t ← IO.bindTask tl fun
|
||||
let t ← BaseIO.bindTask tl fun
|
||||
| Except.ok tl => Task.map Except.ok <$> tl.waitFind? p
|
||||
| Except.error e => return Task.pure <| Except.ok <| Except.error e
|
||||
coeErr t
|
||||
|
||||
/-- Extends the `finishedPrefix` as far as possible. If computation was ongoing
|
||||
and has finished, also returns the terminating value. -/
|
||||
partial def updateFinishedPrefix : AsyncList ε α → IO (AsyncList ε α × Option ε)
|
||||
partial def updateFinishedPrefix : AsyncList ε α → BaseIO (AsyncList ε α × Option ε)
|
||||
| cons hd tl => do
|
||||
let ⟨tl, e?⟩ ← tl.updateFinishedPrefix
|
||||
pure ⟨cons hd tl, e?⟩
|
||||
|
|
|
|||
7
stage0/src/Lean/Server/FileWorker.lean
generated
7
stage0/src/Lean/Server/FileWorker.lean
generated
|
|
@ -148,10 +148,7 @@ section Initialization
|
|||
let stdout := stdout.split (· == '\n') |>.getLast!
|
||||
let Except.ok (paths : LeanPaths) ← pure (Json.parse stdout >>= fromJson?)
|
||||
| throwServerError s!"invalid output from `{cmdStr}`:\n{stdout}\nstderr:\n{stderr}"
|
||||
let sp ← getBuiltinSearchPath
|
||||
let sp ← addSearchPathFromEnv sp
|
||||
let sp := paths.oleanPath ++ sp
|
||||
searchPathRef.set sp
|
||||
initSearchPath (← getBuildDir) paths.oleanPath
|
||||
paths.srcPath.mapM realPathNormalized
|
||||
| 2 => pure [] -- no lakefile.lean
|
||||
| _ => throwServerError s!"`{cmdStr}` failed:\n{stdout}\nstderr:\n{stderr}"
|
||||
|
|
@ -366,7 +363,7 @@ section MessageHandling
|
|||
srcSearchPath := ctx.srcSearchPath
|
||||
doc := st.doc
|
||||
hLog := ctx.hLog }
|
||||
let t? ← (ExceptT.run <| handleLspRequest method params rc : IO _)
|
||||
let t? ← EIO.toIO' <| handleLspRequest method params rc
|
||||
let t₁ ← match t? with
|
||||
| Except.error e =>
|
||||
IO.asTask do
|
||||
|
|
|
|||
|
|
@ -69,8 +69,12 @@ partial def handleDefinition (kind : GoToKind) (p : TextDocumentPositionParams)
|
|||
let mod? ← findModuleOf? n
|
||||
let modUri? ← match mod? with
|
||||
| some modName =>
|
||||
let modFname? ← rc.srcSearchPath.findWithExt "lean" modName
|
||||
pure <| modFname?.map toFileUri
|
||||
let some modFname ← rc.srcSearchPath.findWithExt "lean" modName
|
||||
| pure none
|
||||
-- resolve symlinks (such as `src` in the build dir) so that files are opened
|
||||
-- in the right folder
|
||||
let modFname ← IO.FS.realPath modFname
|
||||
pure <| some <| toFileUri modFname
|
||||
| none => pure <| some doc.meta.uri
|
||||
|
||||
let ranges? ← findDeclarationRanges? n
|
||||
|
|
@ -221,7 +225,7 @@ partial def handleDocumentSymbol (p : DocumentSymbolParams)
|
|||
| some ElabTaskError.aborted =>
|
||||
throw RequestError.fileChanged
|
||||
| some (ElabTaskError.ioError e) =>
|
||||
throwThe IO.Error e
|
||||
throw (e : RequestError)
|
||||
| _ => ()
|
||||
|
||||
let lastSnap := cmdSnaps.finishedPrefix.getLastD doc.headerSnap
|
||||
|
|
@ -320,14 +324,20 @@ where
|
|||
stx.getArgs.forM go
|
||||
highlightId (stx : Syntax) : ReaderT SemanticTokensContext (StateT SemanticTokensState RequestM) _ := do
|
||||
if let some range := stx.getRange? then
|
||||
let mut lastPos := range.start
|
||||
for ti in (← read).snap.infoTree.deepestNodes (fun
|
||||
| _, i@(Elab.Info.ofTermInfo ti), _ => match i.pos? with
|
||||
| some ipos => if range.contains ipos then some ti else none
|
||||
| _ => none
|
||||
| _, _, _ => none) do
|
||||
match ti.expr with
|
||||
| Expr.fvar .. => addToken ti.stx SemanticTokenType.variable
|
||||
| _ => if ti.stx.getPos?.get! > range.start then addToken ti.stx SemanticTokenType.property
|
||||
if let Expr.fvar .. := ti.expr then
|
||||
addToken ti.stx SemanticTokenType.variable
|
||||
else if ti.stx.getPos?.get! > lastPos then
|
||||
-- any info after the start position: must be projection notation
|
||||
addToken ti.stx SemanticTokenType.property
|
||||
-- avoid reporting same position twice; the info node can occur multiple times if
|
||||
-- e.g. the term is elaborated multiple times
|
||||
lastPos := ti.stx.getPos?.get!
|
||||
highlightKeyword stx := do
|
||||
if let Syntax.atom info val := stx then
|
||||
if val.bsize > 0 && val[0].isAlpha then
|
||||
|
|
@ -371,7 +381,7 @@ partial def handleWaitForDiagnostics (p : WaitForDiagnosticsParams)
|
|||
waitLoop
|
||||
let t ← RequestM.asTask waitLoop
|
||||
RequestM.bindTask t fun doc? => do
|
||||
let doc ← doc?
|
||||
let doc ← liftExcept doc?
|
||||
let t₁ ← doc.cmdSnaps.waitAll
|
||||
return t₁.map fun _ => pure WaitForDiagnostics.mk
|
||||
|
||||
|
|
|
|||
4
stage0/src/Lean/Server/InfoUtils.lean
generated
4
stage0/src/Lean/Server/InfoUtils.lean
generated
|
|
@ -6,6 +6,7 @@ Authors: Wojciech Nawrocki
|
|||
-/
|
||||
import Lean.DocString
|
||||
import Lean.Elab.InfoTree
|
||||
import Lean.PrettyPrinter.Delaborator.Options
|
||||
import Lean.Util.Sorry
|
||||
|
||||
protected structure String.Range where
|
||||
|
|
@ -164,7 +165,8 @@ where
|
|||
match i with
|
||||
| Info.ofTermInfo ti =>
|
||||
let tp ← Meta.inferType ti.expr
|
||||
let eFmt ← Meta.ppExpr ti.expr
|
||||
let eFmt ← Lean.withOptions (Lean.pp.fullNames.set . true) do
|
||||
Meta.ppExpr ti.expr
|
||||
let tpFmt ← Meta.ppExpr tp
|
||||
-- try not to show too scary internals
|
||||
let fmt := if isAtomicFormat eFmt then f!"{eFmt} : {tpFmt}" else f!"{tpFmt}"
|
||||
|
|
|
|||
33
stage0/src/Lean/Server/Requests.lean
generated
33
stage0/src/Lean/Server/Requests.lean
generated
|
|
@ -62,10 +62,13 @@ structure RequestContext where
|
|||
|
||||
abbrev RequestTask α := Task (Except RequestError α)
|
||||
/-- Workers execute request handlers in this monad. -/
|
||||
abbrev RequestM := ReaderT RequestContext <| ExceptT RequestError IO
|
||||
abbrev RequestM := ReaderT RequestContext <| EIO RequestError
|
||||
|
||||
instance : Inhabited (RequestM α) :=
|
||||
⟨throwThe IO.Error "executing Inhabited instance?!"⟩
|
||||
⟨throw ("executing Inhabited instance?!" : RequestError)⟩
|
||||
|
||||
instance : MonadLift IO RequestM where
|
||||
monadLift x := x.toEIO fun e => (e : RequestError)
|
||||
|
||||
namespace RequestM
|
||||
open FileWorker
|
||||
|
|
@ -75,25 +78,15 @@ def readDoc : RequestM EditableDocument := fun rc =>
|
|||
rc.doc
|
||||
|
||||
def asTask (t : RequestM α) : RequestM (RequestTask α) := fun rc => do
|
||||
let t ← IO.asTask <| t rc
|
||||
return t.map fun
|
||||
| Except.error e => throwThe RequestError e
|
||||
| Except.ok v => v
|
||||
let t ← EIO.asTask <| t rc
|
||||
return t.map liftExcept
|
||||
|
||||
def mapTask (t : Task α) (f : α → RequestM β) : RequestM (RequestTask β) := fun rc => do
|
||||
let t ← (IO.mapTask · t) fun a => f a rc
|
||||
return t.map fun
|
||||
| Except.error e => throwThe RequestError e
|
||||
| Except.ok v => v
|
||||
let t ← EIO.mapTask (f · rc) t
|
||||
return t.map liftExcept
|
||||
|
||||
def bindTask (t : Task α) (f : α → RequestM (RequestTask β)) : RequestM (RequestTask β) := fun rc => do
|
||||
let t ← IO.bindTask t fun a => do
|
||||
match (← f a rc) with
|
||||
| Except.error e => return Task.pure <| Except.ok <| Except.error e
|
||||
| Except.ok t => return t.map Except.ok
|
||||
return t.map fun
|
||||
| Except.error e => throwThe RequestError e
|
||||
| Except.ok v => v
|
||||
EIO.bindTask t (f · rc)
|
||||
|
||||
/-- Create a task which waits for the first snapshot matching `p`, handles various errors,
|
||||
and if a matching snapshot was found executes `x` with it. If not found, the task executes
|
||||
|
|
@ -110,7 +103,7 @@ def withWaitFindSnap (doc : EditableDocument) (p : Snapshot → Bool)
|
|||
| Except.error FileWorker.ElabTaskError.aborted =>
|
||||
throwThe RequestError RequestError.fileChanged
|
||||
| Except.error (FileWorker.ElabTaskError.ioError e) =>
|
||||
throwThe IO.Error e
|
||||
throw (e : RequestError)
|
||||
| Except.error FileWorker.ElabTaskError.eof => notFoundX
|
||||
| Except.ok none => notFoundX
|
||||
| Except.ok (some snap) => x snap
|
||||
|
|
@ -151,7 +144,7 @@ def registerLspRequestHandler (method : String)
|
|||
let fileSource := fun j =>
|
||||
parseRequestParams paramType j |>.map Lsp.fileSource
|
||||
let handle := fun j => do
|
||||
let params ← parseRequestParams paramType j
|
||||
let params ← liftExcept <| parseRequestParams paramType j
|
||||
let t ← handler params
|
||||
t.map <| Except.map ToJson.toJson
|
||||
|
||||
|
|
@ -167,7 +160,7 @@ def routeLspRequest (method : String) (params : Json) : IO (Except RequestError
|
|||
|
||||
def handleLspRequest (method : String) (params : Json) : RequestM (RequestTask Json) := do
|
||||
match (← lookupLspRequestHandler method) with
|
||||
| none => throwThe IO.Error <| IO.userError s!"internal server error: request '{method}' routed through watchdog but unknown in worker; are both using the same plugins?"
|
||||
| none => throw (s!"internal server error: request '{method}' routed through watchdog but unknown in worker; are both using the same plugins?" : RequestError)
|
||||
| some rh => rh.handle params
|
||||
|
||||
end HandlerTable
|
||||
|
|
|
|||
2
stage0/src/Lean/Server/Rpc/RequestHandling.lean
generated
2
stage0/src/Lean/Server/Rpc/RequestHandling.lean
generated
|
|
@ -47,7 +47,7 @@ def registerRpcCallHandler (method : Name)
|
|||
let sesh ← seshRef.get
|
||||
|
||||
let t ← RequestM.asTask do
|
||||
let paramsLsp ← parseRequestParams paramLspType j
|
||||
let paramsLsp ← liftExcept <| parseRequestParams paramLspType j
|
||||
let act := rpcDecode (α := paramType) (β := paramLspType) (m := StateM FileWorker.RpcSession) paramsLsp
|
||||
match act.run' sesh with
|
||||
| Except.ok v => return v
|
||||
|
|
|
|||
12
stage0/src/Lean/Server/Snapshots.lean
generated
12
stage0/src/Lean/Server/Snapshots.lean
generated
|
|
@ -66,9 +66,6 @@ def reparseHeader (contents : String) (header : Snapshot) (opts : Options := {})
|
|||
let (newStx, newMpState, _) ← Parser.parseHeader inputCtx
|
||||
pure { header with stx := newStx, mpState := newMpState }
|
||||
|
||||
private def ioErrorFromEmpty (ex : Empty) : IO.Error :=
|
||||
nomatch ex
|
||||
|
||||
/-- Parses the next command occurring after the given snapshot
|
||||
without elaborating it. -/
|
||||
def parseNextCmd (contents : String) (snap : Snapshot) : IO Syntax := do
|
||||
|
|
@ -126,11 +123,10 @@ def compileNextCmd (text : FileMap) (snap : Snapshot) : IO Snapshot := do
|
|||
fileName := inputCtx.fileName
|
||||
fileMap := inputCtx.fileMap
|
||||
}
|
||||
let (output, _) ← IO.FS.withIsolatedStreams do
|
||||
EIO.toIO ioErrorFromEmpty do
|
||||
Elab.Command.catchExceptions
|
||||
(getResetInfoTrees *> Elab.Command.elabCommandTopLevel cmdStx)
|
||||
cmdCtx cmdStateRef
|
||||
let (output, _) ← IO.FS.withIsolatedStreams <| liftM (m := BaseIO) do
|
||||
Elab.Command.catchExceptions
|
||||
(getResetInfoTrees *> Elab.Command.elabCommandTopLevel cmdStx)
|
||||
cmdCtx cmdStateRef
|
||||
let mut postCmdState ← cmdStateRef.get
|
||||
if !output.isEmpty then
|
||||
postCmdState := {
|
||||
|
|
|
|||
43
stage0/src/Lean/Util/Path.lean
generated
43
stage0/src/Lean/Util/Path.lean
generated
|
|
@ -49,15 +49,15 @@ def getBuildDir : IO FilePath := do
|
|||
return (← IO.appDir).parent |>.get!
|
||||
|
||||
@[export lean_get_libdir]
|
||||
def getLibDir : IO FilePath := do
|
||||
let mut buildDir ← getBuildDir
|
||||
def getLibDir (leanSysroot : FilePath) : IO FilePath := do
|
||||
let mut buildDir := leanSysroot
|
||||
-- use stage1 stdlib with stage0 executable (which should never be distributed outside of the build directory)
|
||||
if isStage0 () then
|
||||
buildDir := buildDir / ".." / "stage1"
|
||||
buildDir / "lib" / "lean"
|
||||
|
||||
def getBuiltinSearchPath : IO SearchPath :=
|
||||
return [← getLibDir]
|
||||
def getBuiltinSearchPath (leanSysroot : FilePath) : IO SearchPath :=
|
||||
return [← getLibDir leanSysroot]
|
||||
|
||||
def addSearchPathFromEnv (sp : SearchPath) : IO SearchPath := do
|
||||
let val ← IO.getEnv "LEAN_PATH"
|
||||
|
|
@ -65,14 +65,17 @@ def addSearchPathFromEnv (sp : SearchPath) : IO SearchPath := do
|
|||
| none => pure sp
|
||||
| some val => pure <| SearchPath.parse val ++ sp
|
||||
|
||||
/--
|
||||
Initialize Lean's search path given Lean's system root and an initial search path.
|
||||
The system root can be obtained via `getBuildDir` (for internal use) or
|
||||
`findSysroot?` (for external users). -/
|
||||
def initSearchPath (leanSysroot : FilePath) (sp : SearchPath := ∅) : IO Unit := do
|
||||
let sp := sp ++ (← addSearchPathFromEnv (← getBuiltinSearchPath leanSysroot))
|
||||
searchPathRef.set sp
|
||||
|
||||
@[export lean_init_search_path]
|
||||
def initSearchPath (path : Option String := none) : IO Unit :=
|
||||
match path with
|
||||
| some path => searchPathRef.set <| SearchPath.parse path
|
||||
| none => do
|
||||
let sp ← getBuiltinSearchPath
|
||||
let sp ← addSearchPathFromEnv sp
|
||||
searchPathRef.set sp
|
||||
private def initSearchPathInternal : IO Unit := do
|
||||
initSearchPath (← getBuildDir)
|
||||
|
||||
partial def findOLean (mod : Name) : IO FilePath := do
|
||||
let sp ← searchPathRef.get
|
||||
|
|
@ -110,4 +113,22 @@ def moduleNameOfFileName (fname : FilePath) (rootDir : Option FilePath) : IO Nam
|
|||
let modName := modNameStr.components.foldl Name.mkStr Name.anonymous
|
||||
pure modName
|
||||
|
||||
/--
|
||||
Find the system root of the given `lean` command
|
||||
by calling `lean --print-prefix` and returning the path it prints.
|
||||
Defaults to trying the `lean` in `PATH`.
|
||||
If set, the `LEAN_SYSROOT` environment variable takes precedence.
|
||||
Note that the called `lean` binary might not be part of the system root,
|
||||
e.g. in the case of `elan`'s proxy binary.
|
||||
Users internal to Lean should use `Lean.getBuildDir` instead.
|
||||
-/
|
||||
def findSysroot? (lean := "lean") : IO FilePath := do
|
||||
if let some root ← IO.getEnv "LEAN_SYSROOT" then
|
||||
return root
|
||||
let out ← IO.Process.run {
|
||||
cmd := lean
|
||||
args := #["--print-prefix"]
|
||||
}
|
||||
out.trim
|
||||
|
||||
end Lean
|
||||
|
|
|
|||
45
stage0/src/Leanc.lean
generated
45
stage0/src/Leanc.lean
generated
|
|
@ -1,3 +1,7 @@
|
|||
import Lean.Compiler.FFI
|
||||
|
||||
open Lean.Compiler.FFI
|
||||
|
||||
def main (args : List String) : IO UInt32 := do
|
||||
if args.isEmpty then
|
||||
IO.println "Lean C compiler
|
||||
|
|
@ -7,7 +11,6 @@ which can be overridden with the environment variable `LEAN_CC`. All parameters
|
|||
as-is to the wrapped compiler.
|
||||
|
||||
Interesting options:
|
||||
* `-U LEAN_MULTI_THREAD` can be used to optimize programs not making use of multi-threading
|
||||
* `--print-cflags`: print C compiler flags necessary for building against the Lean runtime and exit
|
||||
* `--print-ldlags`: print C compiler flags necessary for statically linking against the Lean library and exit
|
||||
* Set the `LEANC_GMP` environment variable to a path to `libgmp.a` (or `-l:libgmp.a` on Linux) to link GMP statically.
|
||||
|
|
@ -17,33 +20,37 @@ Beware of the licensing consequences since GMP is LGPL."
|
|||
let root ← match (← IO.getEnv "LEAN_SYSROOT") with
|
||||
| some root => System.FilePath.mk root
|
||||
| none => (← IO.appDir).parent.get!
|
||||
let rootify s := s.replace "ROOT" root.toString
|
||||
|
||||
let compileOnly := args.contains "-c"
|
||||
let linkStatic := !args.contains "-shared"
|
||||
|
||||
-- We assume that the CMake variables do not contain escaped spaces
|
||||
let cflags := ["-I", (root / "include").toString] ++ "@LEANC_EXTRA_FLAGS@".trim.splitOn
|
||||
let mut ldflags := ["-L", (root / "lib").toString, "-L", (root / "lib" / "lean").toString, (← IO.getEnv "LEANC_GMP").getD "-lgmp"] ++ "@LEAN_EXTRA_LINKER_FLAGS@".trim.splitOn
|
||||
let mut ldflagsExt := "@LEANC_STATIC_LINKER_FLAGS@".trim.splitOn
|
||||
let cflags := getCFlags root
|
||||
let mut cflagsInternal := "@LEANC_INTERNAL_FLAGS@".trim.splitOn
|
||||
let mut ldflagsInternal := "@LEANC_INTERNAL_LINKER_FLAGS@".trim.splitOn
|
||||
let ldflags := getLinkerFlags root linkStatic ((← IO.getEnv "LEANC_GMP").getD "-lgmp")
|
||||
|
||||
for arg in args do
|
||||
match arg with
|
||||
| "-shared" =>
|
||||
-- switch to shared linker flags
|
||||
ldflagsExt := "@LEANC_SHARED_LINKER_FLAGS@".trim.splitOn
|
||||
| "-c" =>
|
||||
ldflags := []
|
||||
ldflagsExt := []
|
||||
| "--print-cflags" =>
|
||||
IO.println <| " ".intercalate cflags
|
||||
IO.println <| " ".intercalate (cflags.map rootify |>.toList)
|
||||
return 0
|
||||
| "--print-ldflags" =>
|
||||
IO.println <| " ".intercalate (cflags ++ ldflagsExt ++ ldflags)
|
||||
IO.println <| " ".intercalate ((cflags ++ ldflags).map rootify |>.toList)
|
||||
return 0
|
||||
| _ => ()
|
||||
|
||||
let mut cc := (← IO.getEnv "LEAN_CC").getD "@LEANC_CC@"
|
||||
if cc.startsWith "." then
|
||||
cc := (root / "bin" / cc).toString
|
||||
|
||||
let args := cflags ++ args ++ ldflagsExt ++ ldflags ++ ["-Wno-unused-command-line-argument"]
|
||||
let mut cc := "@LEANC_CC@"
|
||||
if let some cc' ← IO.getEnv "LEAN_CC" then
|
||||
cc := cc'
|
||||
-- these are intended for the bundled compiler only
|
||||
cflagsInternal := []
|
||||
ldflagsInternal := []
|
||||
cc := rootify cc
|
||||
let args := cflags ++ cflagsInternal ++ args ++ ldflagsInternal ++ ldflags ++ ["-Wno-unused-command-line-argument"]
|
||||
let args := args.filter (!·.isEmpty) |>.map rootify
|
||||
if args.contains "-v" then
|
||||
IO.eprintln s!"{cc} {" ".intercalate args}"
|
||||
let child ← IO.Process.spawn { cmd := cc, args := args.toArray }
|
||||
IO.eprintln s!"{cc} {" ".intercalate args.toList}"
|
||||
let child ← IO.Process.spawn { cmd := cc, args }
|
||||
child.wait
|
||||
|
|
|
|||
2
stage0/src/Leanpkg.lean
generated
2
stage0/src/Leanpkg.lean
generated
|
|
@ -219,7 +219,7 @@ end Leanpkg
|
|||
def main (args : List String) : IO UInt32 := do
|
||||
try
|
||||
Lean.enableInitializersExecution
|
||||
Lean.initSearchPath none -- HACK
|
||||
Lean.initSearchPath (← Lean.getBuildDir)
|
||||
let (cmd, outerArgs, innerArgs) ← Leanpkg.splitCmdlineArgs args
|
||||
Leanpkg.main cmd outerArgs innerArgs
|
||||
catch e =>
|
||||
|
|
|
|||
9
stage0/src/bin/leanc.in
generated
9
stage0/src/bin/leanc.in
generated
|
|
@ -1,10 +1,13 @@
|
|||
#!/usr/bin/env bash
|
||||
# used only for building Lean itself
|
||||
root=$(dirname $0)
|
||||
ldflags=("-L$root/lib/lean" "${LEANC_GMP:--lgmp}" @LEAN_EXTRA_LINKER_FLAGS@)
|
||||
ldflags=(@LEANC_INTERNAL_LINKER_FLAGS@ "-L$root/lib/lean" "${LEANC_GMP:--lgmp}" @LEAN_EXTRA_LINKER_FLAGS@)
|
||||
for arg in "$@"; do
|
||||
# ccache doesn't like linker flags being passed here
|
||||
[[ "$arg" = "-c" ]] && ldflags=()
|
||||
[[ "$arg" = "-v" ]] && set -x
|
||||
[[ "$arg" = "-v" ]] && v=1
|
||||
done
|
||||
exec ${LEAN_CC:-@CMAKE_C_COMPILER@} "-I$root/include" @LEANC_EXTRA_FLAGS@ "$@" "${ldflags[@]}" -Wno-unused-command-line-argument
|
||||
cmd=(${LEAN_CC:-@CMAKE_C_COMPILER@} "-I$root/include" @LEANC_EXTRA_FLAGS@ @LEANC_INTERNAL_FLAGS@ "$@" "${ldflags[@]}" -Wno-unused-command-line-argument)
|
||||
cmd=$(printf '%q ' "${cmd[@]}" | sed "s!ROOT!$root!g")
|
||||
[[ $v == 1 ]] && echo $cmd
|
||||
eval $cmd
|
||||
|
|
|
|||
35
stage0/src/include/lean/lean.h
generated
35
stage0/src/include/lean/lean.h
generated
|
|
@ -5,18 +5,14 @@ Released under Apache 2.0 license as described in the file LICENSE.
|
|||
Author: Leonardo de Moura
|
||||
*/
|
||||
#pragma once
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include <limits.h>
|
||||
#if !defined(__APPLE__)
|
||||
#include <malloc.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
#include <atomic>
|
||||
#include <stdlib.h>
|
||||
#define _Atomic(t) std::atomic<t>
|
||||
#define LEAN_USING_STD using namespace std; /* NOLINT */
|
||||
extern "C" {
|
||||
|
|
@ -45,6 +41,15 @@ extern "C" {
|
|||
#define LEAN_ALWAYS_INLINE
|
||||
#endif
|
||||
|
||||
#ifndef assert
|
||||
#ifdef NDEBUG
|
||||
#define assert(expr)
|
||||
#else
|
||||
void lean_notify_assert(const char * fileName, int line, const char * condition);
|
||||
#define assert(expr) { if (LEAN_UNLIKELY(!(expr))) lean_notify_assert(__FILE__, __LINE__, #expr); }
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#define LEAN_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
|
|
@ -58,12 +63,6 @@ extern "C" {
|
|||
#define LEAN_SHARED
|
||||
#endif
|
||||
|
||||
#ifdef LEAN_RUNTIME_STATS
|
||||
#define LEAN_RUNTIME_STAT_CODE(c) c
|
||||
#else
|
||||
#define LEAN_RUNTIME_STAT_CODE(c)
|
||||
#endif
|
||||
|
||||
#define LEAN_BYTE(Var, Index) *(((uint8_t*)&Var)+Index)
|
||||
|
||||
#define LeanMaxCtorTag 244
|
||||
|
|
@ -310,6 +309,10 @@ LEAN_SHARED void lean_free_small(void * p);
|
|||
LEAN_SHARED unsigned lean_small_mem_size(void * p);
|
||||
LEAN_SHARED void lean_inc_heartbeat();
|
||||
|
||||
#ifndef __cplusplus
|
||||
void * malloc(size_t); // avoid including big `stdlib.h`
|
||||
#endif
|
||||
|
||||
static inline lean_object * lean_alloc_small_object(unsigned sz) {
|
||||
#ifdef LEAN_SMALL_ALLOCATOR
|
||||
sz = lean_align(sz, LEAN_OBJECT_SIZE_DELTA);
|
||||
|
|
@ -358,6 +361,10 @@ static inline unsigned lean_small_object_size(lean_object * o) {
|
|||
#endif
|
||||
}
|
||||
|
||||
#ifndef __cplusplus
|
||||
void free(void *); // avoid including big `stdlib.h`
|
||||
#endif
|
||||
|
||||
static inline void lean_free_small_object(lean_object * o) {
|
||||
#ifdef LEAN_SMALL_ALLOCATOR
|
||||
lean_free_small(o);
|
||||
|
|
@ -1008,9 +1015,9 @@ static inline uint8_t lean_string_utf8_at_end(b_lean_obj_arg s, b_lean_obj_arg i
|
|||
}
|
||||
LEAN_SHARED lean_obj_res lean_string_utf8_extract(b_lean_obj_arg s, b_lean_obj_arg b, b_lean_obj_arg e);
|
||||
static inline lean_obj_res lean_string_utf8_byte_size(b_lean_obj_arg s) { return lean_box(lean_string_size(s) - 1); }
|
||||
LEAN_SHARED bool lean_string_eq_cold(b_lean_obj_arg s1, b_lean_obj_arg s2);
|
||||
static inline bool lean_string_eq(b_lean_obj_arg s1, b_lean_obj_arg s2) {
|
||||
return s1 == s2 ||
|
||||
(lean_string_size(s1) == lean_string_size(s2) && memcmp(lean_string_cstr(s1), lean_string_cstr(s2), lean_string_size(s1)) == 0);
|
||||
return s1 == s2 || (lean_string_size(s1) == lean_string_size(s2) && lean_string_eq_cold(s1, s2));
|
||||
}
|
||||
static inline bool lean_string_ne(b_lean_obj_arg s1, b_lean_obj_arg s2) { return !lean_string_eq(s1, s2); }
|
||||
LEAN_SHARED bool lean_string_lt(b_lean_obj_arg s1, b_lean_obj_arg s2);
|
||||
|
|
|
|||
24
stage0/src/kernel/type_checker.cpp
generated
24
stage0/src/kernel/type_checker.cpp
generated
|
|
@ -749,6 +749,27 @@ bool type_checker::try_eta_expansion_core(expr const & t, expr const & s) {
|
|||
}
|
||||
}
|
||||
|
||||
/** \brief check whether \c s is of the form <tt>mk t.1 ... t.n</tt> */
|
||||
bool type_checker::try_eta_struct_core(expr const & t, expr const & s) {
|
||||
expr f = get_app_fn(s);
|
||||
if (!is_constant(f)) return false;
|
||||
constant_info f_info = env().get(const_name(f));
|
||||
if (!f_info.is_constructor()) return false;
|
||||
constructor_val f_val = f_info.to_constructor_val();
|
||||
if (get_app_num_args(s) != f_val.get_nparams() + f_val.get_nfields()) return false;
|
||||
inductive_val I_val = env().get(f_val.get_induct()).to_inductive_val();
|
||||
if (I_val.get_ncnstrs() != 1) return 1;
|
||||
buffer<expr> s_args;
|
||||
get_app_args(s, s_args);
|
||||
for (unsigned i = f_val.get_nparams(); i < s_args.size(); i++) {
|
||||
expr s_arg = whnf(s_args[i]);
|
||||
if (!is_proj(s_arg)) return false;
|
||||
if (proj_idx(s_arg) + nat(f_val.get_nparams()) != nat(i)) return false;
|
||||
if (!is_def_eq(t, proj_expr(s_arg))) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/** \brief Return true if \c t and \c s are definitionally equal because they are applications of the form
|
||||
<tt>(f a_1 ... a_n)</tt> <tt>(g b_1 ... b_n)</tt>, and \c f and \c g are definitionally equal, and
|
||||
\c a_i and \c b_i are also definitionally equal for every 1 <= i <= n.
|
||||
|
|
@ -961,6 +982,9 @@ bool type_checker::is_def_eq_core(expr const & t, expr const & s) {
|
|||
if (try_eta_expansion(t_n, s_n))
|
||||
return true;
|
||||
|
||||
if (try_eta_struct(t_n, s_n))
|
||||
return true;
|
||||
|
||||
r = try_string_lit_expansion(t_n, s_n);
|
||||
if (r != l_undef) return r == l_true;
|
||||
|
||||
|
|
|
|||
4
stage0/src/kernel/type_checker.h
generated
4
stage0/src/kernel/type_checker.h
generated
|
|
@ -78,6 +78,10 @@ private:
|
|||
bool try_eta_expansion(expr const & t, expr const & s) {
|
||||
return try_eta_expansion_core(t, s) || try_eta_expansion_core(s, t);
|
||||
}
|
||||
bool try_eta_struct_core(expr const & t, expr const & s);
|
||||
bool try_eta_struct(expr const & t, expr const & s) {
|
||||
return try_eta_struct_core(t, s) || try_eta_struct_core(s, t);
|
||||
}
|
||||
lbool try_string_lit_expansion_core(expr const & t, expr const & s);
|
||||
lbool try_string_lit_expansion(expr const & t, expr const & s);
|
||||
bool is_def_eq_app(expr const & t, expr const & s);
|
||||
|
|
|
|||
6
stage0/src/runtime/alloc.cpp
generated
6
stage0/src/runtime/alloc.cpp
generated
|
|
@ -10,6 +10,12 @@ Author: Leonardo de Moura
|
|||
#include "runtime/debug.h"
|
||||
#include "runtime/alloc.h"
|
||||
|
||||
#ifdef LEAN_RUNTIME_STATS
|
||||
#define LEAN_RUNTIME_STAT_CODE(c) c
|
||||
#else
|
||||
#define LEAN_RUNTIME_STAT_CODE(c)
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__) || defined(__clang__)
|
||||
#define LEAN_NOINLINE __attribute__((noinline))
|
||||
#else
|
||||
|
|
|
|||
1
stage0/src/runtime/compact.cpp
generated
1
stage0/src/runtime/compact.cpp
generated
|
|
@ -8,6 +8,7 @@ Author: Leonardo de Moura
|
|||
#include <algorithm>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <cstring>
|
||||
#include <lean/lean.h>
|
||||
#include "runtime/hash.h"
|
||||
#include "runtime/compact.h"
|
||||
|
|
|
|||
6
stage0/src/runtime/debug.cpp
generated
6
stage0/src/runtime/debug.cpp
generated
|
|
@ -17,6 +17,7 @@ Author: Leonardo de Moura
|
|||
// Support for pid
|
||||
#include<unistd.h>
|
||||
#endif
|
||||
#include <lean/lean.h>
|
||||
#include "runtime/debug.h"
|
||||
|
||||
namespace lean {
|
||||
|
|
@ -133,4 +134,9 @@ void invoke_debugger() {
|
|||
#endif
|
||||
}
|
||||
// LCOV_EXCL_STOP
|
||||
|
||||
extern "C" LEAN_EXPORT void lean_notify_assert(const char * fileName, int line, const char * condition) {
|
||||
notify_assertion_violation(fileName, line, condition);
|
||||
invoke_debugger();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
4
stage0/src/runtime/object.cpp
generated
4
stage0/src/runtime/object.cpp
generated
|
|
@ -1649,6 +1649,10 @@ extern "C" LEAN_EXPORT object * lean_string_append(object * s1, object * s2) {
|
|||
return r;
|
||||
}
|
||||
|
||||
extern "C" LEAN_EXPORT bool lean_string_eq_cold(b_lean_obj_arg s1, b_lean_obj_arg s2) {
|
||||
return std::memcmp(lean_string_cstr(s1), lean_string_cstr(s2), lean_string_size(s1)) == 0;
|
||||
}
|
||||
|
||||
bool string_eq(object * s1, char const * s2) {
|
||||
if (lean_string_size(s1) != strlen(s2) + 1)
|
||||
return false;
|
||||
|
|
|
|||
1
stage0/src/runtime/sharecommon.cpp
generated
1
stage0/src/runtime/sharecommon.cpp
generated
|
|
@ -5,6 +5,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
|
|||
Author: Leonardo de Moura
|
||||
*/
|
||||
#include <vector>
|
||||
#include <cstring>
|
||||
#include "runtime/object.h"
|
||||
#include "runtime/hash.h"
|
||||
|
||||
|
|
|
|||
47
stage0/src/shell/CMakeLists.txt
generated
47
stage0/src/shell/CMakeLists.txt
generated
|
|
@ -17,12 +17,12 @@ if(LLVM)
|
|||
set(LLVM_SYSTEM_LIBS "-lz")
|
||||
endif()
|
||||
if(${STATIC} AND NOT ("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin"))
|
||||
set(LEAN_EXE_LINKER_FLAGS "${LEAN_EXE_LINKER_FLAGS} `llvm-config --link-static --ldflags --libs nativecodegen` -Wl,-Bstatic ${LLVM_SYSTEM_LIBS} -Wl,-Bdynamic")
|
||||
string(APPEND LEAN_EXE_LINKER_FLAGS " `llvm-config --link-static --ldflags --libs nativecodegen` -Wl,-Bstatic ${LLVM_SYSTEM_LIBS} -Wl,-Bdynamic")
|
||||
else()
|
||||
set(LEAN_EXE_LINKER_FLAGS "${LEAN_EXE_LINKER_FLAGS} `llvm-config --ldflags --libs nativecodegen` ${LLVM_SYSTEM_LIBS}")
|
||||
string(APPEND LEAN_EXE_LINKER_FLAGS " `llvm-config --ldflags --libs nativecodegen` ${LLVM_SYSTEM_LIBS}")
|
||||
endif()
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
set(LEAN_EXE_LINKER_FLAGS "${LEAN_EXE_LINKER_FLAGS} -lole32 -luuid")
|
||||
string(APPEND LEAN_EXE_LINKER_FLAGS " -lole32 -luuid")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
|
@ -46,6 +46,9 @@ add_test(lean_ghash2 "${CMAKE_BINARY_DIR}/bin/lean" --githash)
|
|||
add_test(lean_unknown_option bash "${LEAN_SOURCE_DIR}/cmake/check_failure.sh" "${CMAKE_BINARY_DIR}/bin/lean" "-z")
|
||||
add_test(lean_unknown_file1 bash "${LEAN_SOURCE_DIR}/cmake/check_failure.sh" "${CMAKE_BINARY_DIR}/bin/lean" "boofoo.lean")
|
||||
|
||||
# LEANC_OPTS is necessary for macOS c++ to find its headers
|
||||
set(TEST_VARS "PATH=${LEAN_BIN}:$PATH ${LEAN_TEST_VARS} CXX='${CMAKE_CXX_COMPILER} ${LEANC_OPTS}'")
|
||||
|
||||
# LEAN TESTS
|
||||
file(GLOB LEANTESTS "${LEAN_SOURCE_DIR}/../tests/lean/*.lean")
|
||||
FOREACH(T ${LEANTESTS})
|
||||
|
|
@ -53,7 +56,7 @@ FOREACH(T ${LEANTESTS})
|
|||
GET_FILENAME_COMPONENT(T_NAME ${T} NAME)
|
||||
add_test(NAME "leantest_${T_NAME}"
|
||||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lean"
|
||||
COMMAND bash -c "PATH=${LEAN_BIN}:$PATH ./test_single.sh ${T_NAME}")
|
||||
COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T_NAME}")
|
||||
endif()
|
||||
ENDFOREACH(T)
|
||||
|
||||
|
|
@ -64,7 +67,7 @@ FOREACH(T ${LEANRUNTESTS})
|
|||
GET_FILENAME_COMPONENT(T_NAME ${T} NAME)
|
||||
add_test(NAME "leanruntest_${T_NAME}"
|
||||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lean/run"
|
||||
COMMAND bash -c "PATH=${LEAN_BIN}:$PATH ./test_single.sh ${T_NAME}")
|
||||
COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T_NAME}")
|
||||
endif()
|
||||
ENDFOREACH(T)
|
||||
|
||||
|
|
@ -74,15 +77,15 @@ FOREACH(T ${LEANCOMPTESTS})
|
|||
GET_FILENAME_COMPONENT(T_NAME ${T} NAME)
|
||||
add_test(NAME "leancomptest_${T_NAME}"
|
||||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/compiler"
|
||||
COMMAND bash -c "PATH=${LEAN_BIN}:$PATH ./test_single.sh ${T_NAME}")
|
||||
COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T_NAME}")
|
||||
ENDFOREACH(T)
|
||||
|
||||
add_test(NAME leancomptest_foreign
|
||||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/compiler/foreign"
|
||||
COMMAND bash -c "${LEAN_BIN}/leanmake --always-make CXX='${CMAKE_CXX_COMPILER} ${LEANC_OPTS}'")
|
||||
COMMAND bash -c "LEANC_GMP=${GMP_LIBRARIES} ${LEAN_BIN}/leanmake --always-make")
|
||||
add_test(NAME leancomptest_doc_example
|
||||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../doc/examples/compiler"
|
||||
COMMAND bash -c "${LEAN_BIN}/leanmake --always-make bin && ./build/bin/test hello world")
|
||||
COMMAND bash -c "export ${TEST_VARS}; leanmake --always-make bin && ./build/bin/test hello world")
|
||||
|
||||
# LEAN INTERPRETER TESTS
|
||||
file(GLOB LEANINTERPTESTS "${LEAN_SOURCE_DIR}/../tests/compiler/*.lean")
|
||||
|
|
@ -91,7 +94,7 @@ FOREACH(T ${LEANINTERPTESTS})
|
|||
GET_FILENAME_COMPONENT(T_NAME ${T} NAME)
|
||||
add_test(NAME "leaninterptest_${T_NAME}"
|
||||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/compiler"
|
||||
COMMAND bash -c "PATH=${LEAN_BIN}:$PATH ./test_single_interpret.sh ${T_NAME}")
|
||||
COMMAND bash -c "${TEST_VARS} ./test_single_interpret.sh ${T_NAME}")
|
||||
endif()
|
||||
ENDFOREACH(T)
|
||||
|
||||
|
|
@ -103,7 +106,7 @@ FOREACH(T_OUT ${LEANBENCHTESTS})
|
|||
GET_FILENAME_COMPONENT(T_NAME ${T} NAME)
|
||||
add_test(NAME "leanbenchtest_${T_NAME}"
|
||||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/bench"
|
||||
COMMAND bash -c "PATH=${LEAN_BIN}:$PATH ./test_single.sh ${T_NAME}")
|
||||
COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T_NAME}")
|
||||
ENDFOREACH(T_OUT)
|
||||
|
||||
file(GLOB LEANINTERPTESTS "${LEAN_SOURCE_DIR}/../tests/plugin/*.lean")
|
||||
|
|
@ -111,7 +114,7 @@ FOREACH(T ${LEANINTERPTESTS})
|
|||
GET_FILENAME_COMPONENT(T_NAME ${T} NAME)
|
||||
add_test(NAME "leanplugintest_${T_NAME}"
|
||||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/plugin"
|
||||
COMMAND bash -c "PATH=${LEAN_BIN}:$PATH ./test_single.sh ${T_NAME}")
|
||||
COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T_NAME}")
|
||||
ENDFOREACH(T)
|
||||
|
||||
# LEAN TESTS using --trust=0
|
||||
|
|
@ -120,7 +123,7 @@ FOREACH(T ${LEANT0TESTS})
|
|||
GET_FILENAME_COMPONENT(T_NAME ${T} NAME)
|
||||
add_test(NAME "leant0test_${T_NAME}"
|
||||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lean/trust0"
|
||||
COMMAND bash -c "PATH=${LEAN_BIN}:$PATH ./test_single.sh ${T_NAME}")
|
||||
COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T_NAME}")
|
||||
ENDFOREACH(T)
|
||||
|
||||
# LEAN SERVER TESTS
|
||||
|
|
@ -130,7 +133,7 @@ FOREACH(T ${LEANTESTS})
|
|||
GET_FILENAME_COMPONENT(T_NAME ${T} NAME)
|
||||
add_test(NAME "leanservertest_${T_NAME}"
|
||||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lean/server"
|
||||
COMMAND bash -c "PATH=${LEAN_BIN}:$PATH ./test_single.sh ${T_NAME}")
|
||||
COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T_NAME}")
|
||||
endif()
|
||||
ENDFOREACH(T)
|
||||
|
||||
|
|
@ -141,7 +144,7 @@ FOREACH(T ${LEANTESTS})
|
|||
GET_FILENAME_COMPONENT(T_NAME ${T} NAME)
|
||||
add_test(NAME "leaninteractivetest_${T_NAME}"
|
||||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lean/interactive"
|
||||
COMMAND bash -c "PATH=${LEAN_BIN}:$PATH ./test_single.sh ${T_NAME}")
|
||||
COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T_NAME}")
|
||||
endif()
|
||||
ENDFOREACH(T)
|
||||
|
||||
|
|
@ -149,7 +152,7 @@ add_test(NAME leanpkgtest
|
|||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/leanpkg/b"
|
||||
COMMAND bash -c "
|
||||
set -eu
|
||||
export PATH=${LEAN_BIN}:$PATH
|
||||
export ${TEST_VARS}
|
||||
leanpkg build
|
||||
# linking requires some manual steps
|
||||
(cd ../a; leanpkg build lib)
|
||||
|
|
@ -160,14 +163,14 @@ add_test(NAME leanpkgtest_cyclic
|
|||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/leanpkg/cyclic"
|
||||
COMMAND bash -c "
|
||||
set -eu
|
||||
export PATH=${LEAN_BIN}:$PATH
|
||||
export ${TEST_VARS}
|
||||
leanpkg build 2>&1 | grep 'import cycle'")
|
||||
|
||||
add_test(NAME leanpkgtest_user_ext
|
||||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/leanpkg/user_ext"
|
||||
COMMAND bash -c "
|
||||
set -eu
|
||||
export PATH=${LEAN_BIN}:$PATH
|
||||
export ${TEST_VARS}
|
||||
find . -name '*.olean' -delete
|
||||
leanmake | grep 'world, hello, test'")
|
||||
|
||||
|
|
@ -175,7 +178,7 @@ add_test(NAME leanpkgtest_user_attr
|
|||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/leanpkg/user_attr"
|
||||
COMMAND bash -c "
|
||||
set -eu
|
||||
export PATH=${LEAN_BIN}:$PATH
|
||||
export ${TEST_VARS}
|
||||
find . -name '*.olean' -delete
|
||||
leanmake")
|
||||
|
||||
|
|
@ -183,7 +186,7 @@ add_test(NAME leanpkgtest_user_opt
|
|||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/leanpkg/user_opt"
|
||||
COMMAND bash -c "
|
||||
set -eu
|
||||
export PATH=${LEAN_BIN}:$PATH
|
||||
export ${TEST_VARS}
|
||||
find . -name '*.olean' -delete
|
||||
leanmake")
|
||||
|
||||
|
|
@ -191,7 +194,7 @@ add_test(NAME leanpkgtest_prv
|
|||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/leanpkg/prv"
|
||||
COMMAND bash -c "
|
||||
set -eu
|
||||
export PATH=${LEAN_BIN}:$PATH
|
||||
export ${TEST_VARS}
|
||||
find . -name '*.olean' -delete
|
||||
leanmake 2>&1 | grep 'error: field.*private'")
|
||||
|
||||
|
|
@ -199,7 +202,7 @@ add_test(NAME leanpkgtest_user_attr_app
|
|||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/leanpkg/user_attr_app"
|
||||
COMMAND bash -c "
|
||||
set -eu
|
||||
export PATH=${LEAN_BIN}:$PATH
|
||||
export ${TEST_VARS}
|
||||
find . -name '*.olean' -delete
|
||||
leanmake bin LINK_OPTS='${LEAN_DYN_EXE_LINKER_FLAGS}' && build/bin/UserAttr")
|
||||
|
||||
|
|
@ -215,5 +218,5 @@ add_test(NAME laketest
|
|||
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/lake/examples"
|
||||
COMMAND bash -c "
|
||||
set -eu
|
||||
export PATH=${LEAN_BIN}:$PATH
|
||||
export ${TEST_VARS}
|
||||
make LAKE=lake test")
|
||||
|
|
|
|||
5
stage0/src/util/CMakeLists.txt
generated
5
stage0/src/util/CMakeLists.txt
generated
|
|
@ -1,6 +1,9 @@
|
|||
configure_file(ffi.cpp "${CMAKE_BINARY_DIR}/util/ffi.cpp" @ONLY)
|
||||
|
||||
add_library(util OBJECT name.cpp name_set.cpp
|
||||
escaped.cpp bit_tricks.cpp ascii.cpp
|
||||
path.cpp lbool.cpp init_module.cpp list_fn.cpp
|
||||
timeit.cpp timer.cpp
|
||||
name_generator.cpp kvmap.cpp map_foreach.cpp
|
||||
options.cpp format.cpp option_declarations.cpp shell.cpp)
|
||||
options.cpp format.cpp option_declarations.cpp shell.cpp
|
||||
"${CMAKE_BINARY_DIR}/util/ffi.cpp")
|
||||
|
|
|
|||
19
stage0/src/util/ffi.cpp
generated
Normal file
19
stage0/src/util/ffi.cpp
generated
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
Copyright (c) 2021 Sebastian Ullrich. All rights reserved.
|
||||
Released under Apache 2.0 license as described in the file LICENSE.
|
||||
|
||||
Author: Sebastian Ullrich
|
||||
*/
|
||||
|
||||
#include <lean/lean.h>
|
||||
#include "runtime/string_ref.h"
|
||||
|
||||
namespace lean {
|
||||
extern "C" object * lean_get_leanc_extra_flags(object *) {
|
||||
return lean_mk_string("@LEANC_EXTRA_FLAGS@");
|
||||
}
|
||||
|
||||
extern "C" object * lean_get_linker_flags(uint8 link_static) {
|
||||
return lean_mk_string(link_static ? "@LEANC_STATIC_LINKER_FLAGS@ @LEAN_EXTRA_LINKER_FLAGS@" : "@LEANC_SHARED_LINKER_FLAGS@ @LEAN_EXTRA_LINKER_FLAGS@");
|
||||
}
|
||||
}
|
||||
17
stage0/src/util/shell.cpp
generated
17
stage0/src/util/shell.cpp
generated
|
|
@ -336,10 +336,10 @@ void load_library(std::string path) {
|
|||
}
|
||||
|
||||
namespace lean {
|
||||
extern "C" object * lean_run_frontend(object * input, object * opts, object * filename, object * main_module_name, object * w);
|
||||
pair_ref<environment, object_ref> run_new_frontend(std::string const & input, options const & opts, std::string const & file_name, name const & main_module_name) {
|
||||
extern "C" object * lean_run_frontend(object * input, object * opts, object * filename, object * main_module_name, uint32_t trust_level, object * w);
|
||||
pair_ref<environment, object_ref> run_new_frontend(std::string const & input, options const & opts, std::string const & file_name, name const & main_module_name, uint32_t trust_level) {
|
||||
return get_io_result<pair_ref<environment, object_ref>>(
|
||||
lean_run_frontend(mk_string(input), opts.to_obj_arg(), mk_string(file_name), main_module_name.to_obj_arg(), io_mk_world()));
|
||||
lean_run_frontend(mk_string(input), opts.to_obj_arg(), mk_string(file_name), main_module_name.to_obj_arg(), trust_level, io_mk_world()));
|
||||
}
|
||||
|
||||
/* def workerMain : Options → IO UInt32 */
|
||||
|
|
@ -355,9 +355,9 @@ uint32_t run_server_watchdog(buffer<string_ref> const & args) {
|
|||
return get_io_scalar_result<uint32_t>(lean_server_watchdog_main(arglist.to_obj_arg(), io_mk_world()));
|
||||
}
|
||||
|
||||
extern "C" object* lean_init_search_path(object* opt_path, object* w);
|
||||
extern "C" object* lean_init_search_path(object* w);
|
||||
void init_search_path() {
|
||||
get_io_scalar_result<unsigned>(lean_init_search_path(mk_option_none(), io_mk_world()));
|
||||
get_io_scalar_result<unsigned>(lean_init_search_path(io_mk_world()));
|
||||
}
|
||||
|
||||
extern "C" object* lean_module_name_of_file(object* fname, object * root_dir, object* w);
|
||||
|
|
@ -387,7 +387,7 @@ void environment_free_regions(environment && env) {
|
|||
}
|
||||
|
||||
extern "C" object * lean_get_prefix(object * w);
|
||||
extern "C" object * lean_get_libdir(object * w);
|
||||
extern "C" object * lean_get_libdir(object * sysroot, object * w);
|
||||
|
||||
void check_optarg(char const * option_name) {
|
||||
if (!optarg) {
|
||||
|
|
@ -571,7 +571,8 @@ extern "C" LEAN_EXPORT int lean_main(int argc, char ** argv) {
|
|||
}
|
||||
|
||||
if (print_libdir) {
|
||||
std::cout << get_io_result<string_ref>(lean_get_libdir(io_mk_world())).data() << std::endl;
|
||||
string_ref prefix = get_io_result<string_ref>(lean_get_prefix(io_mk_world()));
|
||||
std::cout << get_io_result<string_ref>(lean_get_libdir(prefix.to_obj_arg(), io_mk_world())).data() << std::endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -647,7 +648,7 @@ extern "C" LEAN_EXPORT int lean_main(int argc, char ** argv) {
|
|||
|
||||
if (!main_module_name)
|
||||
main_module_name = name("_stdin");
|
||||
pair_ref<environment, object_ref> r = run_new_frontend(contents, opts, mod_fn, *main_module_name);
|
||||
pair_ref<environment, object_ref> r = run_new_frontend(contents, opts, mod_fn, *main_module_name, trust_lvl);
|
||||
env = r.fst();
|
||||
bool ok = unbox(r.snd().raw());
|
||||
|
||||
|
|
|
|||
38
stage0/stdlib/Init/Control/Except.c
generated
38
stage0/stdlib/Init/Control/Except.c
generated
|
|
@ -85,6 +85,7 @@ LEAN_EXPORT lean_object* l_Except_tryCatch___rarg(lean_object*, lean_object*);
|
|||
static lean_object* l_Except_instMonadExcept___closed__8;
|
||||
LEAN_EXPORT lean_object* l_ExceptT_finally___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Except_instMonadExcept___closed__4;
|
||||
LEAN_EXPORT lean_object* l_liftExcept(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_ExceptT_instMonadExceptT___rarg___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_ExceptT_map___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_tryFinally___rarg___lambda__1(lean_object*, lean_object*);
|
||||
|
|
@ -131,6 +132,7 @@ static lean_object* l_Except_instMonadExcept___closed__9;
|
|||
LEAN_EXPORT lean_object* l_ExceptT_run___rarg(lean_object*);
|
||||
static lean_object* l_Except_instMonadExcept___closed__1;
|
||||
LEAN_EXPORT lean_object* l_ExceptT_instMonadLiftExceptT___rarg(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_liftExcept___rarg(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_ExceptT_instMonadExceptT___rarg___lambda__8(lean_object*, lean_object*);
|
||||
static lean_object* l_Except_instMonadExcept___closed__2;
|
||||
LEAN_EXPORT lean_object* l_Id_finally___rarg(lean_object*, lean_object*);
|
||||
|
|
@ -2076,6 +2078,42 @@ x_4 = lean_alloc_closure((void*)(l_observing___rarg), 3, 0);
|
|||
return x_4;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_liftExcept___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
|
||||
_start:
|
||||
{
|
||||
if (lean_obj_tag(x_3) == 0)
|
||||
{
|
||||
lean_object* x_4; lean_object* x_5; lean_object* x_6;
|
||||
lean_dec(x_2);
|
||||
x_4 = lean_ctor_get(x_3, 0);
|
||||
lean_inc(x_4);
|
||||
lean_dec(x_3);
|
||||
x_5 = lean_ctor_get(x_1, 0);
|
||||
lean_inc(x_5);
|
||||
lean_dec(x_1);
|
||||
x_6 = lean_apply_2(x_5, lean_box(0), x_4);
|
||||
return x_6;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_7; lean_object* x_8;
|
||||
lean_dec(x_1);
|
||||
x_7 = lean_ctor_get(x_3, 0);
|
||||
lean_inc(x_7);
|
||||
lean_dec(x_3);
|
||||
x_8 = lean_apply_2(x_2, lean_box(0), x_7);
|
||||
return x_8;
|
||||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_liftExcept(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_4;
|
||||
x_4 = lean_alloc_closure((void*)(l_liftExcept___rarg), 3, 0);
|
||||
return x_4;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_instMonadControlExceptT___rarg___lambda__1___closed__1() {
|
||||
_start:
|
||||
{
|
||||
|
|
|
|||
301
stage0/stdlib/Init/Data/String/Basic.c
generated
301
stage0/stdlib/Init/Data/String/Basic.c
generated
|
|
@ -26,7 +26,6 @@ LEAN_EXPORT lean_object* l_String_contains___boxed(lean_object*, lean_object*);
|
|||
LEAN_EXPORT lean_object* l_String_Iterator_remainingToString(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Substring_splitOn(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_toList(lean_object*);
|
||||
LEAN_EXPORT uint8_t l_String_Iterator_isPrefixOfRemaining(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_revPosOfAux___boxed(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_get___boxed(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_instInhabitedString;
|
||||
|
|
@ -62,6 +61,7 @@ LEAN_EXPORT uint8_t l_Substring_any(lean_object*, lean_object*);
|
|||
LEAN_EXPORT lean_object* l_Substring_splitOn___boxed(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Init_Data_String_Basic_0__Substring_takeWhileAux___at_String_nextUntil___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* lean_string_utf8_prev(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_replace(lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Char_toUpper(uint32_t);
|
||||
LEAN_EXPORT lean_object* l_String_isEmpty___boxed(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_back___boxed(lean_object*);
|
||||
|
|
@ -83,6 +83,7 @@ LEAN_EXPORT lean_object* l_String_foldlAux_loop___rarg___boxed(lean_object*, lea
|
|||
LEAN_EXPORT uint8_t l_String_contains___lambda__1(uint32_t, uint32_t);
|
||||
lean_object* lean_string_utf8_extract(lean_object*, lean_object*, lean_object*);
|
||||
uint8_t l_Char_isWhitespace(uint32_t);
|
||||
LEAN_EXPORT lean_object* l_String_replace_loop___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_Iterator_toEnd(lean_object*);
|
||||
LEAN_EXPORT uint32_t l___private_Init_Data_String_Basic_0__String_utf8GetAux(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_split___boxed(lean_object*, lean_object*);
|
||||
|
|
@ -147,7 +148,7 @@ LEAN_EXPORT lean_object* l_String_revPosOfAux(lean_object*, uint32_t, lean_objec
|
|||
LEAN_EXPORT lean_object* l_String_Iterator_nextn(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_revFindAux___boxed(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_revFindAux(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_Iterator_isPrefixOfRemaining___boxed(lean_object*, lean_object*);
|
||||
LEAN_EXPORT uint8_t l_String_substrEq(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Substring_takeWhile(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_singleton(uint32_t);
|
||||
LEAN_EXPORT lean_object* l_String_Iterator_pos(lean_object*);
|
||||
|
|
@ -197,6 +198,7 @@ LEAN_EXPORT uint32_t l_String_front(lean_object*);
|
|||
LEAN_EXPORT lean_object* l_String_dropWhile___boxed(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Substring_atEnd___boxed(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Substring_posOf___boxed(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_substrEq_loop___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_nextWhile(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_Iterator_hasNext___boxed(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_revPosOf___boxed(lean_object*, lean_object*);
|
||||
|
|
@ -234,7 +236,6 @@ LEAN_EXPORT lean_object* l_String_foldrAux___rarg___boxed(lean_object*, lean_obj
|
|||
LEAN_EXPORT lean_object* l___private_Init_Data_String_Basic_0__String_utf8PrevAux___boxed(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Substring_trimLeft(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_Iterator_setCurr(lean_object*, uint32_t);
|
||||
LEAN_EXPORT uint8_t l_String_isPrefixOf_loop(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT uint8_t l_String_all___lambda__1(lean_object*, uint32_t);
|
||||
LEAN_EXPORT uint32_t l_Substring_front(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Char_toString(uint32_t);
|
||||
|
|
@ -247,12 +248,13 @@ LEAN_EXPORT lean_object* l_String_toLower(lean_object*);
|
|||
LEAN_EXPORT lean_object* l_String_foldlAux(lean_object*);
|
||||
LEAN_EXPORT uint8_t l_String_startsWith(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Init_Data_String_Basic_0__String_utf8ExtractAux_u2081(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_replace_loop(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_toNat_x3f___boxed(lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Init_Data_String_Basic_0__String_utf8ExtractAux_u2082___boxed(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_foldrAux_loop___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_posOf___boxed(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_instLTString;
|
||||
LEAN_EXPORT lean_object* l_String_isPrefixOf_loop___boxed(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT uint8_t l_String_substrEq_loop(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT uint8_t l_Substring_atEnd(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_isPrefixOf___boxed(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_trim(lean_object*);
|
||||
|
|
@ -275,11 +277,13 @@ LEAN_EXPORT lean_object* l_String_Iterator_remainingBytes(lean_object*);
|
|||
LEAN_EXPORT lean_object* l___private_Init_Data_String_Basic_0__Substring_takeWhileAux___at_String_nextUntil___spec__1(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Substring_toString(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Substring_foldr___rarg___boxed(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_substrEq___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_toNat_x3f(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_foldrAux___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_push___boxed(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_drop(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_startsWith___boxed(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_replace___boxed(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Init_Data_String_Basic_0__String_utf8GetAux___boxed(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_String_pushn(lean_object*, uint32_t, lean_object*);
|
||||
lean_object* l_Nat_min(lean_object*, lean_object*);
|
||||
|
|
@ -2015,39 +2019,6 @@ lean_dec(x_1);
|
|||
return x_2;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT uint8_t l_String_Iterator_isPrefixOfRemaining(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_9; lean_object* x_10; lean_object* x_11; uint8_t x_12;
|
||||
x_3 = lean_ctor_get(x_1, 0);
|
||||
x_4 = lean_ctor_get(x_1, 1);
|
||||
x_5 = lean_ctor_get(x_2, 0);
|
||||
x_6 = lean_ctor_get(x_2, 1);
|
||||
x_7 = lean_string_utf8_byte_size(x_3);
|
||||
x_8 = lean_string_utf8_extract(x_3, x_4, x_7);
|
||||
x_9 = lean_nat_sub(x_7, x_4);
|
||||
lean_dec(x_7);
|
||||
x_10 = lean_nat_add(x_6, x_9);
|
||||
lean_dec(x_9);
|
||||
x_11 = lean_string_utf8_extract(x_5, x_6, x_10);
|
||||
lean_dec(x_10);
|
||||
x_12 = lean_string_dec_eq(x_8, x_11);
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_8);
|
||||
return x_12;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_String_Iterator_isPrefixOfRemaining___boxed(lean_object* x_1, lean_object* x_2) {
|
||||
_start:
|
||||
{
|
||||
uint8_t x_3; lean_object* x_4;
|
||||
x_3 = l_String_Iterator_isPrefixOfRemaining(x_1, x_2);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_4 = lean_box(x_3);
|
||||
return x_4;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_String_Iterator_nextn(lean_object* x_1, lean_object* x_2) {
|
||||
_start:
|
||||
{
|
||||
|
|
@ -2743,75 +2714,128 @@ lean_dec(x_1);
|
|||
return x_2;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT uint8_t l_String_isPrefixOf_loop(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
|
||||
LEAN_EXPORT uint8_t l_String_substrEq_loop(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) {
|
||||
_start:
|
||||
{
|
||||
uint8_t x_4;
|
||||
x_4 = lean_string_utf8_at_end(x_1, x_3);
|
||||
if (x_4 == 0)
|
||||
uint8_t x_6;
|
||||
x_6 = lean_nat_dec_le(x_5, x_3);
|
||||
if (x_6 == 0)
|
||||
{
|
||||
uint32_t x_5; uint32_t x_6; uint8_t x_7;
|
||||
x_5 = lean_string_utf8_get(x_1, x_3);
|
||||
x_6 = lean_string_utf8_get(x_2, x_3);
|
||||
x_7 = lean_uint32_dec_eq(x_5, x_6);
|
||||
if (x_7 == 0)
|
||||
uint32_t x_7; uint32_t x_8; uint8_t x_9;
|
||||
x_7 = lean_string_utf8_get(x_1, x_3);
|
||||
x_8 = lean_string_utf8_get(x_2, x_4);
|
||||
x_9 = lean_uint32_dec_eq(x_7, x_8);
|
||||
if (x_9 == 0)
|
||||
{
|
||||
uint8_t x_8;
|
||||
uint8_t x_10;
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
x_8 = 0;
|
||||
return x_8;
|
||||
x_10 = 0;
|
||||
return x_10;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_9;
|
||||
x_9 = lean_string_utf8_next(x_2, x_3);
|
||||
lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14;
|
||||
x_11 = l_String_csize(x_7);
|
||||
x_12 = lean_nat_add(x_3, x_11);
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_3);
|
||||
x_3 = x_9;
|
||||
x_13 = l_String_csize(x_8);
|
||||
x_14 = lean_nat_add(x_4, x_13);
|
||||
lean_dec(x_13);
|
||||
lean_dec(x_4);
|
||||
x_3 = x_12;
|
||||
x_4 = x_14;
|
||||
goto _start;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_11;
|
||||
uint8_t x_16;
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
x_11 = 1;
|
||||
return x_11;
|
||||
x_16 = 1;
|
||||
return x_16;
|
||||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_String_isPrefixOf_loop___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
|
||||
LEAN_EXPORT lean_object* l_String_substrEq_loop___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) {
|
||||
_start:
|
||||
{
|
||||
uint8_t x_4; lean_object* x_5;
|
||||
x_4 = l_String_isPrefixOf_loop(x_1, x_2, x_3);
|
||||
uint8_t x_6; lean_object* x_7;
|
||||
x_6 = l_String_substrEq_loop(x_1, x_2, x_3, x_4, x_5);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_5 = lean_box(x_4);
|
||||
return x_5;
|
||||
x_7 = lean_box(x_6);
|
||||
return x_7;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT uint8_t l_String_substrEq(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; lean_object* x_7; uint8_t x_8;
|
||||
x_6 = lean_nat_add(x_2, x_5);
|
||||
x_7 = lean_string_utf8_byte_size(x_1);
|
||||
x_8 = lean_nat_dec_le(x_6, x_7);
|
||||
lean_dec(x_7);
|
||||
if (x_8 == 0)
|
||||
{
|
||||
uint8_t x_9;
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
x_9 = 0;
|
||||
return x_9;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_10; lean_object* x_11; uint8_t x_12;
|
||||
x_10 = lean_nat_add(x_4, x_5);
|
||||
x_11 = lean_string_utf8_byte_size(x_3);
|
||||
x_12 = lean_nat_dec_le(x_10, x_11);
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_10);
|
||||
if (x_12 == 0)
|
||||
{
|
||||
uint8_t x_13;
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
x_13 = 0;
|
||||
return x_13;
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_14;
|
||||
x_14 = l_String_substrEq_loop(x_1, x_3, x_2, x_4, x_6);
|
||||
lean_dec(x_6);
|
||||
return x_14;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_String_substrEq___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) {
|
||||
_start:
|
||||
{
|
||||
uint8_t x_6; lean_object* x_7;
|
||||
x_6 = l_String_substrEq(x_1, x_2, x_3, x_4, x_5);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_1);
|
||||
x_7 = lean_box(x_6);
|
||||
return x_7;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT uint8_t l_String_isPrefixOf(lean_object* x_1, lean_object* x_2) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_3; lean_object* x_4; uint8_t x_5;
|
||||
x_3 = lean_string_length(x_1);
|
||||
x_4 = lean_string_length(x_2);
|
||||
x_5 = lean_nat_dec_le(x_3, x_4);
|
||||
lean_dec(x_4);
|
||||
x_3 = lean_string_utf8_byte_size(x_1);
|
||||
x_4 = lean_unsigned_to_nat(0u);
|
||||
x_5 = l_String_substrEq(x_1, x_4, x_2, x_4, x_3);
|
||||
lean_dec(x_3);
|
||||
if (x_5 == 0)
|
||||
{
|
||||
uint8_t x_6;
|
||||
x_6 = 0;
|
||||
return x_6;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_7; uint8_t x_8;
|
||||
x_7 = lean_unsigned_to_nat(0u);
|
||||
x_8 = l_String_isPrefixOf_loop(x_1, x_2, x_7);
|
||||
return x_8;
|
||||
}
|
||||
return x_5;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_String_isPrefixOf___boxed(lean_object* x_1, lean_object* x_2) {
|
||||
|
|
@ -2825,6 +2849,94 @@ x_4 = lean_box(x_3);
|
|||
return x_4;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_String_replace_loop(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; lean_object* x_8; lean_object* x_9; uint8_t x_10;
|
||||
x_7 = lean_string_utf8_byte_size(x_1);
|
||||
x_8 = lean_string_utf8_byte_size(x_2);
|
||||
x_9 = lean_nat_add(x_6, x_8);
|
||||
x_10 = lean_nat_dec_lt(x_7, x_9);
|
||||
if (x_10 == 0)
|
||||
{
|
||||
lean_object* x_11; uint8_t x_12;
|
||||
lean_dec(x_7);
|
||||
x_11 = lean_unsigned_to_nat(0u);
|
||||
lean_inc(x_6);
|
||||
x_12 = l_String_substrEq(x_1, x_6, x_2, x_11, x_8);
|
||||
lean_dec(x_8);
|
||||
if (x_12 == 0)
|
||||
{
|
||||
lean_object* x_13;
|
||||
lean_dec(x_9);
|
||||
x_13 = lean_string_utf8_next(x_1, x_6);
|
||||
lean_dec(x_6);
|
||||
x_6 = x_13;
|
||||
goto _start;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_string_utf8_extract(x_1, x_5, x_6);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
x_16 = lean_string_append(x_4, x_15);
|
||||
lean_dec(x_15);
|
||||
x_17 = lean_string_append(x_16, x_3);
|
||||
lean_inc(x_9);
|
||||
x_4 = x_17;
|
||||
x_5 = x_9;
|
||||
x_6 = x_9;
|
||||
goto _start;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_19; lean_object* x_20;
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_6);
|
||||
x_19 = lean_string_utf8_extract(x_1, x_5, x_7);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_5);
|
||||
x_20 = lean_string_append(x_4, x_19);
|
||||
lean_dec(x_19);
|
||||
return x_20;
|
||||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_String_replace_loop___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) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_7;
|
||||
x_7 = l_String_replace_loop(x_1, x_2, x_3, x_4, x_5, x_6);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
return x_7;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_String_replace(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;
|
||||
x_4 = l_String_splitOnAux___closed__1;
|
||||
x_5 = lean_unsigned_to_nat(0u);
|
||||
x_6 = l_String_replace_loop(x_1, x_2, x_3, x_4, x_5, x_5);
|
||||
return x_6;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_String_replace___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_4;
|
||||
x_4 = l_String_replace(x_1, x_2, x_3);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
return x_4;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT uint8_t l_Substring_isEmpty(lean_object* x_1) {
|
||||
_start:
|
||||
{
|
||||
|
|
@ -4560,31 +4672,44 @@ _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_9; lean_object* x_10; uint8_t x_11;
|
||||
x_3 = lean_ctor_get(x_1, 0);
|
||||
lean_inc(x_3);
|
||||
x_4 = lean_ctor_get(x_1, 1);
|
||||
lean_inc(x_4);
|
||||
x_5 = lean_ctor_get(x_1, 2);
|
||||
lean_inc(x_5);
|
||||
lean_dec(x_1);
|
||||
x_6 = lean_nat_sub(x_5, x_4);
|
||||
lean_dec(x_5);
|
||||
x_7 = lean_ctor_get(x_2, 0);
|
||||
lean_inc(x_7);
|
||||
x_8 = lean_ctor_get(x_2, 1);
|
||||
lean_inc(x_8);
|
||||
x_9 = lean_ctor_get(x_2, 2);
|
||||
lean_inc(x_9);
|
||||
lean_dec(x_2);
|
||||
x_10 = lean_nat_sub(x_9, x_8);
|
||||
lean_dec(x_9);
|
||||
x_11 = lean_nat_dec_eq(x_6, x_10);
|
||||
lean_dec(x_10);
|
||||
lean_dec(x_6);
|
||||
if (x_11 == 0)
|
||||
{
|
||||
uint8_t x_12;
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
x_12 = 0;
|
||||
return x_12;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_13; lean_object* x_14; uint8_t x_15;
|
||||
x_13 = lean_string_utf8_extract(x_3, x_4, x_5);
|
||||
x_14 = lean_string_utf8_extract(x_7, x_8, x_9);
|
||||
x_15 = lean_string_dec_eq(x_13, x_14);
|
||||
lean_dec(x_14);
|
||||
lean_dec(x_13);
|
||||
return x_15;
|
||||
uint8_t x_13;
|
||||
x_13 = l_String_substrEq(x_3, x_4, x_7, x_8, x_6);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_3);
|
||||
return x_13;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4593,8 +4718,6 @@ _start:
|
|||
{
|
||||
uint8_t x_3; lean_object* x_4;
|
||||
x_3 = l_Substring_beq(x_1, x_2);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_4 = lean_box(x_3);
|
||||
return x_4;
|
||||
}
|
||||
|
|
@ -4821,8 +4944,6 @@ lean_ctor_set(x_11, 0, x_2);
|
|||
lean_ctor_set(x_11, 1, x_4);
|
||||
lean_ctor_set(x_11, 2, x_10);
|
||||
x_12 = l_Substring_beq(x_9, x_11);
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_9);
|
||||
return x_12;
|
||||
}
|
||||
}
|
||||
|
|
@ -4863,8 +4984,6 @@ lean_ctor_set(x_12, 0, x_2);
|
|||
lean_ctor_set(x_12, 1, x_4);
|
||||
lean_ctor_set(x_12, 2, x_11);
|
||||
x_13 = l_Substring_beq(x_10, x_12);
|
||||
lean_dec(x_12);
|
||||
lean_dec(x_10);
|
||||
return x_13;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
26
stage0/stdlib/Init/Meta.c
generated
26
stage0/stdlib/Init/Meta.c
generated
|
|
@ -4351,7 +4351,6 @@ lean_object* x_10; lean_object* x_11; uint8_t x_12;
|
|||
x_10 = lean_array_fget(x_4, x_6);
|
||||
x_11 = lean_array_fget(x_5, x_6);
|
||||
x_12 = l_Lean_Syntax_structEq(x_10, x_11);
|
||||
lean_dec(x_11);
|
||||
if (x_12 == 0)
|
||||
{
|
||||
uint8_t x_13;
|
||||
|
|
@ -4502,6 +4501,7 @@ return x_3;
|
|||
else
|
||||
{
|
||||
uint8_t x_4;
|
||||
lean_dec(x_2);
|
||||
x_4 = 0;
|
||||
return x_4;
|
||||
}
|
||||
|
|
@ -4517,12 +4517,17 @@ x_6 = lean_ctor_get(x_1, 2);
|
|||
lean_inc(x_6);
|
||||
lean_dec(x_1);
|
||||
x_7 = lean_ctor_get(x_2, 1);
|
||||
lean_inc(x_7);
|
||||
x_8 = lean_ctor_get(x_2, 2);
|
||||
lean_inc(x_8);
|
||||
lean_dec(x_2);
|
||||
x_9 = lean_name_eq(x_5, x_7);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_5);
|
||||
if (x_9 == 0)
|
||||
{
|
||||
uint8_t x_10;
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_6);
|
||||
x_10 = 0;
|
||||
return x_10;
|
||||
|
|
@ -4538,6 +4543,7 @@ lean_dec(x_11);
|
|||
if (x_13 == 0)
|
||||
{
|
||||
uint8_t x_14;
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_6);
|
||||
x_14 = 0;
|
||||
return x_14;
|
||||
|
|
@ -4547,6 +4553,7 @@ else
|
|||
lean_object* x_15; uint8_t x_16;
|
||||
x_15 = lean_unsigned_to_nat(0u);
|
||||
x_16 = l_Array_isEqvAux___at_Lean_Syntax_structEq___spec__1(x_6, x_8, lean_box(0), x_6, x_8, x_15);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_6);
|
||||
return x_16;
|
||||
}
|
||||
|
|
@ -4555,6 +4562,7 @@ return x_16;
|
|||
else
|
||||
{
|
||||
uint8_t x_17;
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_17 = 0;
|
||||
return x_17;
|
||||
|
|
@ -4569,13 +4577,17 @@ x_18 = lean_ctor_get(x_1, 1);
|
|||
lean_inc(x_18);
|
||||
lean_dec(x_1);
|
||||
x_19 = lean_ctor_get(x_2, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_2);
|
||||
x_20 = lean_string_dec_eq(x_18, x_19);
|
||||
lean_dec(x_19);
|
||||
lean_dec(x_18);
|
||||
return x_20;
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_21;
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_21 = 0;
|
||||
return x_21;
|
||||
|
|
@ -4594,13 +4606,18 @@ x_24 = lean_ctor_get(x_1, 3);
|
|||
lean_inc(x_24);
|
||||
lean_dec(x_1);
|
||||
x_25 = lean_ctor_get(x_2, 1);
|
||||
lean_inc(x_25);
|
||||
x_26 = lean_ctor_get(x_2, 2);
|
||||
lean_inc(x_26);
|
||||
x_27 = lean_ctor_get(x_2, 3);
|
||||
lean_inc(x_27);
|
||||
lean_dec(x_2);
|
||||
x_28 = l_Substring_beq(x_22, x_25);
|
||||
lean_dec(x_22);
|
||||
if (x_28 == 0)
|
||||
{
|
||||
uint8_t x_29;
|
||||
lean_dec(x_27);
|
||||
lean_dec(x_26);
|
||||
lean_dec(x_24);
|
||||
lean_dec(x_23);
|
||||
x_29 = 0;
|
||||
|
|
@ -4610,10 +4627,12 @@ else
|
|||
{
|
||||
uint8_t x_30;
|
||||
x_30 = lean_name_eq(x_23, x_26);
|
||||
lean_dec(x_26);
|
||||
lean_dec(x_23);
|
||||
if (x_30 == 0)
|
||||
{
|
||||
uint8_t x_31;
|
||||
lean_dec(x_27);
|
||||
lean_dec(x_24);
|
||||
x_31 = 0;
|
||||
return x_31;
|
||||
|
|
@ -4622,6 +4641,7 @@ else
|
|||
{
|
||||
uint8_t x_32;
|
||||
x_32 = l_List_beq___at_Lean_Syntax_structEq___spec__2(x_24, x_27);
|
||||
lean_dec(x_27);
|
||||
lean_dec(x_24);
|
||||
return x_32;
|
||||
}
|
||||
|
|
@ -4630,6 +4650,7 @@ return x_32;
|
|||
else
|
||||
{
|
||||
uint8_t x_33;
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_33 = 0;
|
||||
return x_33;
|
||||
|
|
@ -4678,7 +4699,6 @@ _start:
|
|||
{
|
||||
uint8_t x_3; lean_object* x_4;
|
||||
x_3 = l_Lean_Syntax_structEq(x_1, x_2);
|
||||
lean_dec(x_2);
|
||||
x_4 = lean_box(x_3);
|
||||
return x_4;
|
||||
}
|
||||
|
|
|
|||
43
stage0/stdlib/Init/Notation.c
generated
43
stage0/stdlib/Init/Notation.c
generated
|
|
@ -1320,6 +1320,7 @@ LEAN_EXPORT lean_object* l_prioHigh;
|
|||
LEAN_EXPORT lean_object* l_precArg;
|
||||
static lean_object* l_term___x2b_____closed__3;
|
||||
static lean_object* l_precMax___closed__4;
|
||||
static lean_object* l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__3;
|
||||
static lean_object* l_Lean_Parser_Tactic_simp___closed__14;
|
||||
static lean_object* l___aux__Init__Notation______macroRules___xabstx___x2b_xbb__1___closed__1;
|
||||
static lean_object* l_Lean_Parser_Tactic_tactic___x3c_x3b_x3e_____closed__2;
|
||||
|
|
@ -1395,6 +1396,7 @@ static lean_object* l_prec_x28___x29___closed__9;
|
|||
static lean_object* l___aux__Init__Notation______macroRules___xabterm___x7c_x7c_x7c___xbb__1___closed__3;
|
||||
static lean_object* l_stx___x3c_x7c_x3e_____closed__5;
|
||||
static lean_object* l___aux__Init__Notation______macroRules___xabterm___x3e_x3e___xbb__1___closed__2;
|
||||
static lean_object* l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__2;
|
||||
static lean_object* l_term_u2039___u203a___closed__2;
|
||||
static lean_object* l___aux__Init__Notation______macroRules___xabterm___x5e___xbb__1___closed__4;
|
||||
LEAN_EXPORT lean_object* l_Lean_Parser_Tactic___aux__Init__Notation______macroRules__Lean__Parser__Tactic__tacticRefine__lift____1(lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -1499,6 +1501,7 @@ static lean_object* l_Lean_Parser_Tactic_case___closed__8;
|
|||
static lean_object* l_term___x7c_x7c_____closed__6;
|
||||
static lean_object* l_termWithout__expected__type_____closed__1;
|
||||
LEAN_EXPORT lean_object* l_Lean_Parser_Tactic_change;
|
||||
static lean_object* l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__1;
|
||||
static lean_object* l___aux__Init__Notation______macroRules___xabterm___x5e___xbb__1___closed__5;
|
||||
static lean_object* l_Lean_Parser_Tactic_simp___closed__5;
|
||||
static lean_object* l_Lean_Parser_Tactic_locationHyp___closed__9;
|
||||
|
|
@ -17908,6 +17911,32 @@ return x_51;
|
|||
}
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__1() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
x_1 = lean_mk_string("binrel_no_prop");
|
||||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__2() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2; lean_object* x_3;
|
||||
x_1 = l___aux__Init__Notation______macroRules___xabterm___u2218___xbb__1___closed__2;
|
||||
x_2 = l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__1;
|
||||
x_3 = lean_name_mk_string(x_1, x_2);
|
||||
return x_3;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__3() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
x_1 = lean_mk_string("binrel_no_prop%");
|
||||
return x_1;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
|
||||
_start:
|
||||
{
|
||||
|
|
@ -17946,7 +17975,7 @@ lean_inc(x_15);
|
|||
x_16 = lean_ctor_get(x_2, 1);
|
||||
lean_inc(x_16);
|
||||
lean_dec(x_2);
|
||||
x_17 = l___aux__Init__Notation______macroRules___xabterm___x3c_x3d___xbb__2___closed__3;
|
||||
x_17 = l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__3;
|
||||
lean_inc(x_14);
|
||||
x_18 = lean_alloc_ctor(2, 2, 0);
|
||||
lean_ctor_set(x_18, 0, x_14);
|
||||
|
|
@ -17966,7 +17995,7 @@ x_26 = lean_array_push(x_25, x_23);
|
|||
x_27 = lean_array_push(x_26, x_9);
|
||||
x_28 = lean_array_push(x_27, x_11);
|
||||
x_29 = lean_box(2);
|
||||
x_30 = l___aux__Init__Notation______macroRules___xabterm___x3c_x3d___xbb__2___closed__2;
|
||||
x_30 = l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__2;
|
||||
x_31 = lean_alloc_ctor(1, 3, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
|
|
@ -17987,7 +18016,7 @@ lean_inc(x_34);
|
|||
x_35 = lean_ctor_get(x_2, 1);
|
||||
lean_inc(x_35);
|
||||
lean_dec(x_2);
|
||||
x_36 = l___aux__Init__Notation______macroRules___xabterm___x3c_x3d___xbb__2___closed__3;
|
||||
x_36 = l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__3;
|
||||
lean_inc(x_32);
|
||||
x_37 = lean_alloc_ctor(2, 2, 0);
|
||||
lean_ctor_set(x_37, 0, x_32);
|
||||
|
|
@ -18007,7 +18036,7 @@ x_45 = lean_array_push(x_44, x_42);
|
|||
x_46 = lean_array_push(x_45, x_9);
|
||||
x_47 = lean_array_push(x_46, x_11);
|
||||
x_48 = lean_box(2);
|
||||
x_49 = l___aux__Init__Notation______macroRules___xabterm___x3c_x3d___xbb__2___closed__2;
|
||||
x_49 = l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__2;
|
||||
x_50 = lean_alloc_ctor(1, 3, 0);
|
||||
lean_ctor_set(x_50, 0, x_48);
|
||||
lean_ctor_set(x_50, 1, x_49);
|
||||
|
|
@ -44599,6 +44628,12 @@ l___aux__Init__Notation______macroRules___xabterm___x3c_x3d___xbb__2___closed__2
|
|||
lean_mark_persistent(l___aux__Init__Notation______macroRules___xabterm___x3c_x3d___xbb__2___closed__2);
|
||||
l___aux__Init__Notation______macroRules___xabterm___x3c_x3d___xbb__2___closed__3 = _init_l___aux__Init__Notation______macroRules___xabterm___x3c_x3d___xbb__2___closed__3();
|
||||
lean_mark_persistent(l___aux__Init__Notation______macroRules___xabterm___x3c_x3d___xbb__2___closed__3);
|
||||
l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__1 = _init_l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__1();
|
||||
lean_mark_persistent(l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__1);
|
||||
l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__2 = _init_l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__2();
|
||||
lean_mark_persistent(l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__2);
|
||||
l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__3 = _init_l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__3();
|
||||
lean_mark_persistent(l___aux__Init__Notation______macroRules___xabterm___x3d_x3d___xbb__2___closed__3);
|
||||
l_term___x2f_x5c_____closed__1 = _init_l_term___x2f_x5c_____closed__1();
|
||||
lean_mark_persistent(l_term___x2f_x5c_____closed__1);
|
||||
l_term___x2f_x5c_____closed__2 = _init_l_term___x2f_x5c_____closed__2();
|
||||
|
|
|
|||
6
stage0/stdlib/Lean/Compiler.c
generated
6
stage0/stdlib/Lean/Compiler.c
generated
|
|
@ -1,6 +1,6 @@
|
|||
// Lean compiler output
|
||||
// Module: Lean.Compiler
|
||||
// Imports: Init Lean.Compiler.InlineAttrs Lean.Compiler.Specialize Lean.Compiler.ConstFolding Lean.Compiler.ClosedTermCache Lean.Compiler.ExternAttr Lean.Compiler.ImplementedByAttr Lean.Compiler.NeverExtractAttr Lean.Compiler.IR Lean.Compiler.CSimpAttr
|
||||
// Imports: Init Lean.Compiler.InlineAttrs Lean.Compiler.Specialize Lean.Compiler.ConstFolding Lean.Compiler.ClosedTermCache Lean.Compiler.ExternAttr Lean.Compiler.ImplementedByAttr Lean.Compiler.NeverExtractAttr Lean.Compiler.IR Lean.Compiler.CSimpAttr Lean.Compiler.FFI
|
||||
#include <lean/lean.h>
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic ignored "-Wunused-parameter"
|
||||
|
|
@ -23,6 +23,7 @@ lean_object* initialize_Lean_Compiler_ImplementedByAttr(lean_object*);
|
|||
lean_object* initialize_Lean_Compiler_NeverExtractAttr(lean_object*);
|
||||
lean_object* initialize_Lean_Compiler_IR(lean_object*);
|
||||
lean_object* initialize_Lean_Compiler_CSimpAttr(lean_object*);
|
||||
lean_object* initialize_Lean_Compiler_FFI(lean_object*);
|
||||
static bool _G_initialized = false;
|
||||
LEAN_EXPORT lean_object* initialize_Lean_Compiler(lean_object* w) {
|
||||
lean_object * res;
|
||||
|
|
@ -58,6 +59,9 @@ lean_dec_ref(res);
|
|||
res = initialize_Lean_Compiler_CSimpAttr(lean_io_mk_world());
|
||||
if (lean_io_result_is_error(res)) return res;
|
||||
lean_dec_ref(res);
|
||||
res = initialize_Lean_Compiler_FFI(lean_io_mk_world());
|
||||
if (lean_io_result_is_error(res)) return res;
|
||||
lean_dec_ref(res);
|
||||
return lean_io_result_mk_ok(lean_box(0));
|
||||
}
|
||||
#ifdef __cplusplus
|
||||
|
|
|
|||
248
stage0/stdlib/Lean/Compiler/FFI.c
generated
Normal file
248
stage0/stdlib/Lean/Compiler/FFI.c
generated
Normal file
|
|
@ -0,0 +1,248 @@
|
|||
// Lean compiler output
|
||||
// Module: Lean.Compiler.FFI
|
||||
// Imports: Init
|
||||
#include <lean/lean.h>
|
||||
#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_get_leanc_extra_flags(lean_object*);
|
||||
lean_object* lean_mk_empty_array_with_capacity(lean_object*);
|
||||
lean_object* l_System_FilePath_join(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Compiler_FFI_getLinkerFlags___closed__1;
|
||||
static lean_object* l_Lean_Compiler_FFI_getCFlags___closed__4;
|
||||
static lean_object* l_Lean_Compiler_FFI_getLinkerFlags___closed__4;
|
||||
lean_object* lean_array_push(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Compiler_FFI_getCFlags___closed__8;
|
||||
LEAN_EXPORT lean_object* l_Lean_Compiler_FFI_getCFlags(lean_object*);
|
||||
lean_object* l_String_splitOn(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Compiler_FFI_0__Lean_Compiler_FFI_getLeancExtraFlags___boxed(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Compiler_FFI_getLinkerFlags___boxed(lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_List_foldl___at_Array_appendList___spec__1___rarg(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Compiler_FFI_0__Lean_Compiler_FFI_getBuiltinLinkerFlags___boxed(lean_object*);
|
||||
static lean_object* l_Lean_Compiler_FFI_getCFlags___closed__7;
|
||||
lean_object* lean_get_linker_flags(uint8_t);
|
||||
static lean_object* l_Lean_Compiler_FFI_getCFlags___closed__5;
|
||||
lean_object* l_String_trim(lean_object*);
|
||||
static lean_object* l_Lean_Compiler_FFI_getCFlags___closed__3;
|
||||
static lean_object* l_Lean_Compiler_FFI_getLinkerFlags___closed__2;
|
||||
static lean_object* l_Lean_Compiler_FFI_getCFlags___closed__6;
|
||||
static lean_object* l_Lean_Compiler_FFI_getLinkerFlags___closed__3;
|
||||
LEAN_EXPORT lean_object* l_Lean_Compiler_FFI_getLinkerFlags(lean_object*, uint8_t, lean_object*);
|
||||
static lean_object* l_Lean_Compiler_FFI_getCFlags___closed__1;
|
||||
static lean_object* l_Lean_Compiler_FFI_getCFlags___closed__2;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Compiler_FFI_0__Lean_Compiler_FFI_getLeancExtraFlags___boxed(lean_object* x_1) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_2;
|
||||
x_2 = lean_get_leanc_extra_flags(x_1);
|
||||
return x_2;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Compiler_FFI_getCFlags___closed__1() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
x_1 = lean_mk_string("include");
|
||||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Compiler_FFI_getCFlags___closed__2() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2;
|
||||
x_1 = lean_unsigned_to_nat(2u);
|
||||
x_2 = lean_mk_empty_array_with_capacity(x_1);
|
||||
return x_2;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Compiler_FFI_getCFlags___closed__3() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
x_1 = lean_mk_string("-I");
|
||||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Compiler_FFI_getCFlags___closed__4() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2; lean_object* x_3;
|
||||
x_1 = l_Lean_Compiler_FFI_getCFlags___closed__2;
|
||||
x_2 = l_Lean_Compiler_FFI_getCFlags___closed__3;
|
||||
x_3 = lean_array_push(x_1, x_2);
|
||||
return x_3;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Compiler_FFI_getCFlags___closed__5() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2;
|
||||
x_1 = lean_box(0);
|
||||
x_2 = lean_get_leanc_extra_flags(x_1);
|
||||
return x_2;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Compiler_FFI_getCFlags___closed__6() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2;
|
||||
x_1 = l_Lean_Compiler_FFI_getCFlags___closed__5;
|
||||
x_2 = l_String_trim(x_1);
|
||||
return x_2;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Compiler_FFI_getCFlags___closed__7() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
x_1 = lean_mk_string(" ");
|
||||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Compiler_FFI_getCFlags___closed__8() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2; lean_object* x_3;
|
||||
x_1 = l_Lean_Compiler_FFI_getCFlags___closed__6;
|
||||
x_2 = l_Lean_Compiler_FFI_getCFlags___closed__7;
|
||||
x_3 = l_String_splitOn(x_1, x_2);
|
||||
return x_3;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Compiler_FFI_getCFlags(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;
|
||||
x_2 = l_Lean_Compiler_FFI_getCFlags___closed__1;
|
||||
x_3 = l_System_FilePath_join(x_1, x_2);
|
||||
x_4 = l_Lean_Compiler_FFI_getCFlags___closed__4;
|
||||
x_5 = lean_array_push(x_4, x_3);
|
||||
x_6 = l_Lean_Compiler_FFI_getCFlags___closed__8;
|
||||
x_7 = l_List_foldl___at_Array_appendList___spec__1___rarg(x_5, x_6);
|
||||
return x_7;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Compiler_FFI_0__Lean_Compiler_FFI_getBuiltinLinkerFlags___boxed(lean_object* x_1) {
|
||||
_start:
|
||||
{
|
||||
uint8_t x_2; lean_object* x_3;
|
||||
x_2 = lean_unbox(x_1);
|
||||
lean_dec(x_1);
|
||||
x_3 = lean_get_linker_flags(x_2);
|
||||
return x_3;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Compiler_FFI_getLinkerFlags___closed__1() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
x_1 = lean_mk_string("lib");
|
||||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Compiler_FFI_getLinkerFlags___closed__2() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
x_1 = lean_mk_string("lean");
|
||||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Compiler_FFI_getLinkerFlags___closed__3() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
x_1 = lean_mk_string("-L");
|
||||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Compiler_FFI_getLinkerFlags___closed__4() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2; lean_object* x_3;
|
||||
x_1 = l_Lean_Compiler_FFI_getCFlags___closed__2;
|
||||
x_2 = l_Lean_Compiler_FFI_getLinkerFlags___closed__3;
|
||||
x_3 = lean_array_push(x_1, x_2);
|
||||
return x_3;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Compiler_FFI_getLinkerFlags(lean_object* x_1, uint8_t x_2, lean_object* x_3) {
|
||||
_start:
|
||||
{
|
||||
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;
|
||||
x_4 = l_Lean_Compiler_FFI_getLinkerFlags___closed__1;
|
||||
x_5 = l_System_FilePath_join(x_1, x_4);
|
||||
x_6 = l_Lean_Compiler_FFI_getLinkerFlags___closed__2;
|
||||
x_7 = l_System_FilePath_join(x_5, x_6);
|
||||
x_8 = l_Lean_Compiler_FFI_getLinkerFlags___closed__4;
|
||||
x_9 = lean_array_push(x_8, x_7);
|
||||
x_10 = lean_get_linker_flags(x_2);
|
||||
x_11 = l_String_trim(x_10);
|
||||
lean_dec(x_10);
|
||||
x_12 = l_Lean_Compiler_FFI_getCFlags___closed__7;
|
||||
x_13 = l_String_splitOn(x_11, x_12);
|
||||
x_14 = l_List_foldl___at_Array_appendList___spec__1___rarg(x_9, x_13);
|
||||
x_15 = lean_box(0);
|
||||
x_16 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_16, 0, x_3);
|
||||
lean_ctor_set(x_16, 1, x_15);
|
||||
x_17 = l_List_foldl___at_Array_appendList___spec__1___rarg(x_14, x_16);
|
||||
return x_17;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Compiler_FFI_getLinkerFlags___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
|
||||
_start:
|
||||
{
|
||||
uint8_t x_4; lean_object* x_5;
|
||||
x_4 = lean_unbox(x_2);
|
||||
lean_dec(x_2);
|
||||
x_5 = l_Lean_Compiler_FFI_getLinkerFlags(x_1, x_4, x_3);
|
||||
return x_5;
|
||||
}
|
||||
}
|
||||
lean_object* initialize_Init(lean_object*);
|
||||
static bool _G_initialized = false;
|
||||
LEAN_EXPORT lean_object* initialize_Lean_Compiler_FFI(lean_object* w) {
|
||||
lean_object * res;
|
||||
if (_G_initialized) return lean_io_result_mk_ok(lean_box(0));
|
||||
_G_initialized = true;
|
||||
res = initialize_Init(lean_io_mk_world());
|
||||
if (lean_io_result_is_error(res)) return res;
|
||||
lean_dec_ref(res);
|
||||
l_Lean_Compiler_FFI_getCFlags___closed__1 = _init_l_Lean_Compiler_FFI_getCFlags___closed__1();
|
||||
lean_mark_persistent(l_Lean_Compiler_FFI_getCFlags___closed__1);
|
||||
l_Lean_Compiler_FFI_getCFlags___closed__2 = _init_l_Lean_Compiler_FFI_getCFlags___closed__2();
|
||||
lean_mark_persistent(l_Lean_Compiler_FFI_getCFlags___closed__2);
|
||||
l_Lean_Compiler_FFI_getCFlags___closed__3 = _init_l_Lean_Compiler_FFI_getCFlags___closed__3();
|
||||
lean_mark_persistent(l_Lean_Compiler_FFI_getCFlags___closed__3);
|
||||
l_Lean_Compiler_FFI_getCFlags___closed__4 = _init_l_Lean_Compiler_FFI_getCFlags___closed__4();
|
||||
lean_mark_persistent(l_Lean_Compiler_FFI_getCFlags___closed__4);
|
||||
l_Lean_Compiler_FFI_getCFlags___closed__5 = _init_l_Lean_Compiler_FFI_getCFlags___closed__5();
|
||||
lean_mark_persistent(l_Lean_Compiler_FFI_getCFlags___closed__5);
|
||||
l_Lean_Compiler_FFI_getCFlags___closed__6 = _init_l_Lean_Compiler_FFI_getCFlags___closed__6();
|
||||
lean_mark_persistent(l_Lean_Compiler_FFI_getCFlags___closed__6);
|
||||
l_Lean_Compiler_FFI_getCFlags___closed__7 = _init_l_Lean_Compiler_FFI_getCFlags___closed__7();
|
||||
lean_mark_persistent(l_Lean_Compiler_FFI_getCFlags___closed__7);
|
||||
l_Lean_Compiler_FFI_getCFlags___closed__8 = _init_l_Lean_Compiler_FFI_getCFlags___closed__8();
|
||||
lean_mark_persistent(l_Lean_Compiler_FFI_getCFlags___closed__8);
|
||||
l_Lean_Compiler_FFI_getLinkerFlags___closed__1 = _init_l_Lean_Compiler_FFI_getLinkerFlags___closed__1();
|
||||
lean_mark_persistent(l_Lean_Compiler_FFI_getLinkerFlags___closed__1);
|
||||
l_Lean_Compiler_FFI_getLinkerFlags___closed__2 = _init_l_Lean_Compiler_FFI_getLinkerFlags___closed__2();
|
||||
lean_mark_persistent(l_Lean_Compiler_FFI_getLinkerFlags___closed__2);
|
||||
l_Lean_Compiler_FFI_getLinkerFlags___closed__3 = _init_l_Lean_Compiler_FFI_getLinkerFlags___closed__3();
|
||||
lean_mark_persistent(l_Lean_Compiler_FFI_getLinkerFlags___closed__3);
|
||||
l_Lean_Compiler_FFI_getLinkerFlags___closed__4 = _init_l_Lean_Compiler_FFI_getLinkerFlags___closed__4();
|
||||
lean_mark_persistent(l_Lean_Compiler_FFI_getLinkerFlags___closed__4);
|
||||
return lean_io_result_mk_ok(lean_box(0));
|
||||
}
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
157
stage0/stdlib/Lean/Elab/Attributes.c
generated
157
stage0/stdlib/Lean/Elab/Attributes.c
generated
|
|
@ -884,11 +884,8 @@ return x_2;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_elabAttr___spec__1___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
lean_object* x_5; lean_object* x_6;
|
||||
x_5 = l_Lean_Elab_expandMacroImpl_x3f(x_1, x_2, x_3, x_4);
|
||||
if (lean_obj_tag(x_5) == 0)
|
||||
{
|
||||
lean_object* x_6;
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
|
|
@ -923,89 +920,131 @@ uint8_t x_13;
|
|||
x_13 = !lean_is_exclusive(x_6);
|
||||
if (x_13 == 0)
|
||||
{
|
||||
uint8_t x_14;
|
||||
x_14 = !lean_is_exclusive(x_5);
|
||||
if (x_14 == 0)
|
||||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_ctor_get(x_6, 0);
|
||||
x_15 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_14);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_ctor_get(x_6, 0);
|
||||
x_16 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
uint8_t x_16;
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_17);
|
||||
lean_free_object(x_6);
|
||||
x_16 = !lean_is_exclusive(x_5);
|
||||
if (x_16 == 0)
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18;
|
||||
x_17 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_17);
|
||||
x_18 = lean_box(0);
|
||||
lean_ctor_set(x_5, 0, x_18);
|
||||
return x_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_18 = lean_ctor_get(x_6, 0);
|
||||
lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_19 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_5);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
lean_ctor_set(x_6, 0, x_20);
|
||||
x_20 = lean_box(0);
|
||||
x_21 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_21, 0, x_6);
|
||||
lean_ctor_set(x_21, 0, x_20);
|
||||
lean_ctor_set(x_21, 1, x_19);
|
||||
return x_21;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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_22 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_6);
|
||||
x_23 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_23);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_24 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_24 = lean_box(0);
|
||||
uint8_t x_22;
|
||||
x_22 = !lean_is_exclusive(x_5);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_23);
|
||||
x_24 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_24);
|
||||
return x_5;
|
||||
}
|
||||
x_25 = lean_ctor_get(x_22, 1);
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_22);
|
||||
x_26 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
if (lean_is_scalar(x_24)) {
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_27 = x_24;
|
||||
}
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
lean_ctor_set(x_27, 1, x_23);
|
||||
lean_dec(x_5);
|
||||
x_26 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_26);
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_6);
|
||||
lean_ctor_set(x_27, 1, x_25);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_5);
|
||||
if (x_28 == 0)
|
||||
lean_object* x_28; lean_object* x_29;
|
||||
x_28 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_6);
|
||||
x_29 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_28);
|
||||
if (lean_obj_tag(x_29) == 0)
|
||||
{
|
||||
return x_5;
|
||||
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33;
|
||||
lean_dec(x_29);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_31 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_31 = lean_box(0);
|
||||
}
|
||||
x_32 = lean_box(0);
|
||||
if (lean_is_scalar(x_31)) {
|
||||
x_33 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_33 = x_31;
|
||||
}
|
||||
lean_ctor_set(x_33, 0, x_32);
|
||||
lean_ctor_set(x_33, 1, x_30);
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
x_29 = lean_ctor_get(x_5, 0);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_5);
|
||||
x_31 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_34 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_34);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_35 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_35 = lean_box(0);
|
||||
}
|
||||
x_36 = lean_ctor_get(x_29, 0);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_29);
|
||||
x_37 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
if (lean_is_scalar(x_35)) {
|
||||
x_38 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_38 = x_35;
|
||||
}
|
||||
lean_ctor_set(x_38, 0, x_37);
|
||||
lean_ctor_set(x_38, 1, x_34);
|
||||
return x_38;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
157
stage0/stdlib/Lean/Elab/Binders.c
generated
157
stage0/stdlib/Lean/Elab/Binders.c
generated
|
|
@ -20376,11 +20376,8 @@ return x_8;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Term_precheckFun___spec__1___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
lean_object* x_5; lean_object* x_6;
|
||||
x_5 = l_Lean_Elab_expandMacroImpl_x3f(x_1, x_2, x_3, x_4);
|
||||
if (lean_obj_tag(x_5) == 0)
|
||||
{
|
||||
lean_object* x_6;
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
|
|
@ -20415,89 +20412,131 @@ uint8_t x_13;
|
|||
x_13 = !lean_is_exclusive(x_6);
|
||||
if (x_13 == 0)
|
||||
{
|
||||
uint8_t x_14;
|
||||
x_14 = !lean_is_exclusive(x_5);
|
||||
if (x_14 == 0)
|
||||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_ctor_get(x_6, 0);
|
||||
x_15 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_14);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_ctor_get(x_6, 0);
|
||||
x_16 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
uint8_t x_16;
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_17);
|
||||
lean_free_object(x_6);
|
||||
x_16 = !lean_is_exclusive(x_5);
|
||||
if (x_16 == 0)
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18;
|
||||
x_17 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_17);
|
||||
x_18 = lean_box(0);
|
||||
lean_ctor_set(x_5, 0, x_18);
|
||||
return x_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_18 = lean_ctor_get(x_6, 0);
|
||||
lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_19 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_5);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
lean_ctor_set(x_6, 0, x_20);
|
||||
x_20 = lean_box(0);
|
||||
x_21 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_21, 0, x_6);
|
||||
lean_ctor_set(x_21, 0, x_20);
|
||||
lean_ctor_set(x_21, 1, x_19);
|
||||
return x_21;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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_22 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_6);
|
||||
x_23 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_23);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_24 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_24 = lean_box(0);
|
||||
uint8_t x_22;
|
||||
x_22 = !lean_is_exclusive(x_5);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_23);
|
||||
x_24 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_24);
|
||||
return x_5;
|
||||
}
|
||||
x_25 = lean_ctor_get(x_22, 1);
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_22);
|
||||
x_26 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
if (lean_is_scalar(x_24)) {
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_27 = x_24;
|
||||
}
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
lean_ctor_set(x_27, 1, x_23);
|
||||
lean_dec(x_5);
|
||||
x_26 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_26);
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_6);
|
||||
lean_ctor_set(x_27, 1, x_25);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_5);
|
||||
if (x_28 == 0)
|
||||
lean_object* x_28; lean_object* x_29;
|
||||
x_28 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_6);
|
||||
x_29 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_28);
|
||||
if (lean_obj_tag(x_29) == 0)
|
||||
{
|
||||
return x_5;
|
||||
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33;
|
||||
lean_dec(x_29);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_31 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_31 = lean_box(0);
|
||||
}
|
||||
x_32 = lean_box(0);
|
||||
if (lean_is_scalar(x_31)) {
|
||||
x_33 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_33 = x_31;
|
||||
}
|
||||
lean_ctor_set(x_33, 0, x_32);
|
||||
lean_ctor_set(x_33, 1, x_30);
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
x_29 = lean_ctor_get(x_5, 0);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_5);
|
||||
x_31 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_34 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_34);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_35 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_35 = lean_box(0);
|
||||
}
|
||||
x_36 = lean_ctor_get(x_29, 0);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_29);
|
||||
x_37 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
if (lean_is_scalar(x_35)) {
|
||||
x_38 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_38 = x_35;
|
||||
}
|
||||
lean_ctor_set(x_38, 0, x_37);
|
||||
lean_ctor_set(x_38, 1, x_34);
|
||||
return x_38;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
1271
stage0/stdlib/Lean/Elab/BuiltinCommand.c
generated
1271
stage0/stdlib/Lean/Elab/BuiltinCommand.c
generated
File diff suppressed because it is too large
Load diff
159
stage0/stdlib/Lean/Elab/BuiltinNotation.c
generated
159
stage0/stdlib/Lean/Elab/BuiltinNotation.c
generated
|
|
@ -11729,11 +11729,8 @@ return x_7;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Term_elabCDotFunctionAlias_x3f___spec__1___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
lean_object* x_5; lean_object* x_6;
|
||||
x_5 = l_Lean_Elab_expandMacroImpl_x3f(x_1, x_2, x_3, x_4);
|
||||
if (lean_obj_tag(x_5) == 0)
|
||||
{
|
||||
lean_object* x_6;
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
|
|
@ -11768,89 +11765,131 @@ uint8_t x_13;
|
|||
x_13 = !lean_is_exclusive(x_6);
|
||||
if (x_13 == 0)
|
||||
{
|
||||
uint8_t x_14;
|
||||
x_14 = !lean_is_exclusive(x_5);
|
||||
if (x_14 == 0)
|
||||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_ctor_get(x_6, 0);
|
||||
x_15 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_14);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_ctor_get(x_6, 0);
|
||||
x_16 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
uint8_t x_16;
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_17);
|
||||
lean_free_object(x_6);
|
||||
x_16 = !lean_is_exclusive(x_5);
|
||||
if (x_16 == 0)
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18;
|
||||
x_17 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_17);
|
||||
x_18 = lean_box(0);
|
||||
lean_ctor_set(x_5, 0, x_18);
|
||||
return x_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_18 = lean_ctor_get(x_6, 0);
|
||||
lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_19 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_5);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
lean_ctor_set(x_6, 0, x_20);
|
||||
x_20 = lean_box(0);
|
||||
x_21 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_21, 0, x_6);
|
||||
lean_ctor_set(x_21, 0, x_20);
|
||||
lean_ctor_set(x_21, 1, x_19);
|
||||
return x_21;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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_22 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_6);
|
||||
x_23 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_23);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_24 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_24 = lean_box(0);
|
||||
uint8_t x_22;
|
||||
x_22 = !lean_is_exclusive(x_5);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_23);
|
||||
x_24 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_24);
|
||||
return x_5;
|
||||
}
|
||||
x_25 = lean_ctor_get(x_22, 1);
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_22);
|
||||
x_26 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
if (lean_is_scalar(x_24)) {
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_27 = x_24;
|
||||
}
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
lean_ctor_set(x_27, 1, x_23);
|
||||
lean_dec(x_5);
|
||||
x_26 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_26);
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_6);
|
||||
lean_ctor_set(x_27, 1, x_25);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_5);
|
||||
if (x_28 == 0)
|
||||
lean_object* x_28; lean_object* x_29;
|
||||
x_28 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_6);
|
||||
x_29 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_28);
|
||||
if (lean_obj_tag(x_29) == 0)
|
||||
{
|
||||
return x_5;
|
||||
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33;
|
||||
lean_dec(x_29);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_31 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_31 = lean_box(0);
|
||||
}
|
||||
x_32 = lean_box(0);
|
||||
if (lean_is_scalar(x_31)) {
|
||||
x_33 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_33 = x_31;
|
||||
}
|
||||
lean_ctor_set(x_33, 0, x_32);
|
||||
lean_ctor_set(x_33, 1, x_30);
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
x_29 = lean_ctor_get(x_5, 0);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_5);
|
||||
x_31 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_34 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_34);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_35 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_35 = lean_box(0);
|
||||
}
|
||||
x_36 = lean_ctor_get(x_29, 0);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_29);
|
||||
x_37 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
if (lean_is_scalar(x_35)) {
|
||||
x_38 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_38 = x_35;
|
||||
}
|
||||
lean_ctor_set(x_38, 0, x_37);
|
||||
lean_ctor_set(x_38, 1, x_34);
|
||||
return x_38;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -12133,7 +12172,6 @@ lean_object* x_9; lean_object* x_10; uint8_t x_11;
|
|||
x_9 = lean_array_fget(x_3, x_5);
|
||||
x_10 = lean_array_fget(x_4, x_5);
|
||||
x_11 = l_Lean_Syntax_structEq(x_9, x_10);
|
||||
lean_dec(x_10);
|
||||
if (x_11 == 0)
|
||||
{
|
||||
uint8_t x_12;
|
||||
|
|
@ -12174,7 +12212,6 @@ lean_object* x_9; lean_object* x_10; uint8_t x_11;
|
|||
x_9 = lean_array_fget(x_3, x_5);
|
||||
x_10 = lean_array_fget(x_4, x_5);
|
||||
x_11 = l_Lean_Syntax_structEq(x_9, x_10);
|
||||
lean_dec(x_10);
|
||||
if (x_11 == 0)
|
||||
{
|
||||
uint8_t x_12;
|
||||
|
|
|
|||
1184
stage0/stdlib/Lean/Elab/Command.c
generated
1184
stage0/stdlib/Lean/Elab/Command.c
generated
File diff suppressed because it is too large
Load diff
567
stage0/stdlib/Lean/Elab/DefView.c
generated
567
stage0/stdlib/Lean/Elab/DefView.c
generated
|
|
@ -40,7 +40,6 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Command_MkInstanceName_collect(lean_object*
|
|||
lean_object* l_Lean_SourceInfo_fromRef(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Command_mkDefViewOfInstance___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Command_MkInstanceName_main___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Command_MkInstanceName_main___spec__7(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_DefView_0__Lean_Elab_Command_MkInstanceName_kindReplacements___closed__21;
|
||||
lean_object* lean_st_ref_get(lean_object*, lean_object*);
|
||||
uint8_t lean_name_eq(lean_object*, lean_object*);
|
||||
|
|
@ -86,6 +85,7 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Command_MkInstanceName_append(lean_object*,
|
|||
static lean_object* l_Lean_Elab_Command_isDefLike___closed__4;
|
||||
static lean_object* l_Lean_Elab_Command_mkDefViewOfConstant___closed__3;
|
||||
static lean_object* l_Lean_Elab_Command_isDefLike___closed__8;
|
||||
lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_elabCommand___spec__10(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Command_mkDefViewOfConstant___closed__5;
|
||||
static lean_object* l_Lean_Elab_Command_mkDefViewOfInstance___closed__7;
|
||||
lean_object* l_Lean_ResolveName_resolveNamespace_x3f(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -121,7 +121,6 @@ static lean_object* l_Lean_Elab_Command_mkDefViewOfConstant___closed__9;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_Command_isDefLike___boxed(lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_DefView_0__Lean_Elab_Command_MkInstanceName_kindReplacements___closed__19;
|
||||
LEAN_EXPORT lean_object* l_Std_RBNode_insert___at___private_Lean_Elab_DefView_0__Lean_Elab_Command_MkInstanceName_kindReplacements___spec__2(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Command_MkInstanceName_main___spec__8___rarg(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Std_RBMap_ofList___at___private_Lean_Elab_DefView_0__Lean_Elab_Command_MkInstanceName_kindReplacements___spec__1(lean_object*);
|
||||
lean_object* l_Nat_repr(lean_object*);
|
||||
lean_object* lean_st_mk_ref(lean_object*, lean_object*);
|
||||
|
|
@ -144,7 +143,6 @@ static lean_object* l_Lean_Elab_Command_isDefLike___closed__9;
|
|||
LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Command_mkDefView___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_ReaderT_pure___at_Lean_Elab_liftMacroM___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*);
|
||||
uint32_t lean_string_utf8_get(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_MkInstanceName_main___spec__5(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Command_MkInstanceName_main___spec__4(lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_DefView_0__Lean_Elab_Command_MkInstanceName_kindReplacements___closed__24;
|
||||
static lean_object* l_Lean_Elab_Command_MkInstanceName_main___closed__1;
|
||||
|
|
@ -176,7 +174,6 @@ lean_object* l_Lean_mkAtomFrom(lean_object*, lean_object*);
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_Command_MkInstanceName_isFirst___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_MkInstanceName_main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_DefKind_noConfusion___rarg___closed__1;
|
||||
LEAN_EXPORT lean_object* l_Lean_throwErrorAt___at_Lean_Elab_Command_MkInstanceName_main___spec__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Syntax_getSepArgs(lean_object*);
|
||||
uint8_t l_String_isEmpty(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_DefKind_noConfusion___rarg___boxed(lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -206,7 +203,6 @@ static lean_object* l_Lean_Elab_Command_mkDefViewOfInstance___closed__2;
|
|||
static lean_object* l_Lean_Elab_Command_mkDefViewOfConstant___closed__11;
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Command_mkDefView___spec__1(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_resolveGlobalName___at_Lean_Elab_Command_MkInstanceName_collect___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Command_MkInstanceName_main___spec__8___boxed(lean_object*, lean_object*);
|
||||
uint8_t l_Lean_Syntax_isNone(lean_object*);
|
||||
lean_object* l_Lean_expandMacros(lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Elab_Modifiers_addAttribute(lean_object*, lean_object*);
|
||||
|
|
@ -243,7 +239,6 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Command_MkInstanceName_mkFreshInstanceName_
|
|||
LEAN_EXPORT lean_object* l_Std_RBNode_ins___at___private_Lean_Elab_DefView_0__Lean_Elab_Command_MkInstanceName_kindReplacements___spec__3(lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_instInhabitedDefView___closed__2;
|
||||
static lean_object* l_Lean_Elab_Command_mkDefViewOfInstance___closed__5;
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Command_MkInstanceName_main___spec__7___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_DefView_deriving_x3f___default;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_MkInstanceName_main___spec__1___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Command_isDefLike___closed__10;
|
||||
|
|
@ -255,7 +250,6 @@ static lean_object* l_Lean_Elab_Command_isDefLike___closed__7;
|
|||
static lean_object* l_Lean_Elab_Command_mkDefViewOfConstant___closed__7;
|
||||
static lean_object* l_Lean_Elab_Command_initFn____x40_Lean_Elab_DefView___hyg_1520____closed__2;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Command_MkInstanceName_main(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Command_MkInstanceName_main___spec__8(lean_object*, lean_object*);
|
||||
LEAN_EXPORT uint8_t l___private_Lean_Elab_DefView_0__Lean_Elab_beqDefKind____x40_Lean_Elab_DefView___hyg_14_(uint8_t, uint8_t);
|
||||
static lean_object* l___private_Lean_Elab_DefView_0__Lean_Elab_Command_MkInstanceName_kindReplacements___closed__22;
|
||||
LEAN_EXPORT lean_object* l_Lean_MonadRef_mkInfoFromRefPos___at_Lean_Elab_Command_mkDefViewOfConstant___spec__1(lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -4525,11 +4519,8 @@ return x_3;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_MkInstanceName_main___spec__1___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
lean_object* x_5; lean_object* x_6;
|
||||
x_5 = l_Lean_Elab_expandMacroImpl_x3f(x_1, x_2, x_3, x_4);
|
||||
if (lean_obj_tag(x_5) == 0)
|
||||
{
|
||||
lean_object* x_6;
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
|
|
@ -4564,89 +4555,131 @@ uint8_t x_13;
|
|||
x_13 = !lean_is_exclusive(x_6);
|
||||
if (x_13 == 0)
|
||||
{
|
||||
uint8_t x_14;
|
||||
x_14 = !lean_is_exclusive(x_5);
|
||||
if (x_14 == 0)
|
||||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_ctor_get(x_6, 0);
|
||||
x_15 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_14);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_ctor_get(x_6, 0);
|
||||
x_16 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
uint8_t x_16;
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_17);
|
||||
lean_free_object(x_6);
|
||||
x_16 = !lean_is_exclusive(x_5);
|
||||
if (x_16 == 0)
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18;
|
||||
x_17 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_17);
|
||||
x_18 = lean_box(0);
|
||||
lean_ctor_set(x_5, 0, x_18);
|
||||
return x_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_18 = lean_ctor_get(x_6, 0);
|
||||
lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_19 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_5);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
lean_ctor_set(x_6, 0, x_20);
|
||||
x_20 = lean_box(0);
|
||||
x_21 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_21, 0, x_6);
|
||||
lean_ctor_set(x_21, 0, x_20);
|
||||
lean_ctor_set(x_21, 1, x_19);
|
||||
return x_21;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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_22 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_6);
|
||||
x_23 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_23);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_24 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_24 = lean_box(0);
|
||||
uint8_t x_22;
|
||||
x_22 = !lean_is_exclusive(x_5);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_23);
|
||||
x_24 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_24);
|
||||
return x_5;
|
||||
}
|
||||
x_25 = lean_ctor_get(x_22, 1);
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_22);
|
||||
x_26 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
if (lean_is_scalar(x_24)) {
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_27 = x_24;
|
||||
}
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
lean_ctor_set(x_27, 1, x_23);
|
||||
lean_dec(x_5);
|
||||
x_26 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_26);
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_6);
|
||||
lean_ctor_set(x_27, 1, x_25);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_5);
|
||||
if (x_28 == 0)
|
||||
lean_object* x_28; lean_object* x_29;
|
||||
x_28 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_6);
|
||||
x_29 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_28);
|
||||
if (lean_obj_tag(x_29) == 0)
|
||||
{
|
||||
return x_5;
|
||||
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33;
|
||||
lean_dec(x_29);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_31 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_31 = lean_box(0);
|
||||
}
|
||||
x_32 = lean_box(0);
|
||||
if (lean_is_scalar(x_31)) {
|
||||
x_33 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_33 = x_31;
|
||||
}
|
||||
lean_ctor_set(x_33, 0, x_32);
|
||||
lean_ctor_set(x_33, 1, x_30);
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
x_29 = lean_ctor_get(x_5, 0);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_5);
|
||||
x_31 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_34 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_34);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_35 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_35 = lean_box(0);
|
||||
}
|
||||
x_36 = lean_ctor_get(x_29, 0);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_29);
|
||||
x_37 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
if (lean_is_scalar(x_35)) {
|
||||
x_38 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_38 = x_35;
|
||||
}
|
||||
lean_ctor_set(x_38, 0, x_37);
|
||||
lean_ctor_set(x_38, 1, x_34);
|
||||
return x_38;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4937,385 +4970,6 @@ return x_84;
|
|||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Command_MkInstanceName_main___spec__7(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; lean_object* x_13; uint8_t x_14;
|
||||
x_5 = l_Lean_Elab_Command_getRef(x_2, x_3, x_4);
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
x_7 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_7);
|
||||
lean_dec(x_5);
|
||||
x_8 = lean_ctor_get(x_2, 4);
|
||||
lean_inc(x_8);
|
||||
lean_inc(x_8);
|
||||
x_9 = l_Lean_Elab_getBetterRef(x_6, x_8);
|
||||
lean_dec(x_6);
|
||||
x_10 = l_Lean_addMessageContextPartial___at_Lean_Elab_Command_instAddMessageContextCommandElabM___spec__1(x_1, x_2, x_3, x_7);
|
||||
x_11 = lean_ctor_get(x_10, 0);
|
||||
lean_inc(x_11);
|
||||
x_12 = lean_ctor_get(x_10, 1);
|
||||
lean_inc(x_12);
|
||||
lean_dec(x_10);
|
||||
x_13 = l_Lean_Elab_addMacroStack___at_Lean_Elab_Command_instAddErrorMessageContextCommandElabM___spec__1(x_11, x_8, x_2, x_3, x_12);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_8);
|
||||
x_14 = !lean_is_exclusive(x_13);
|
||||
if (x_14 == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16;
|
||||
x_15 = lean_ctor_get(x_13, 0);
|
||||
x_16 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_16, 0, x_9);
|
||||
lean_ctor_set(x_16, 1, x_15);
|
||||
lean_ctor_set_tag(x_13, 1);
|
||||
lean_ctor_set(x_13, 0, x_16);
|
||||
return x_13;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20;
|
||||
x_17 = lean_ctor_get(x_13, 0);
|
||||
x_18 = lean_ctor_get(x_13, 1);
|
||||
lean_inc(x_18);
|
||||
lean_inc(x_17);
|
||||
lean_dec(x_13);
|
||||
x_19 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_19, 0, x_9);
|
||||
lean_ctor_set(x_19, 1, x_17);
|
||||
x_20 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_20, 0, x_19);
|
||||
lean_ctor_set(x_20, 1, x_18);
|
||||
return x_20;
|
||||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_throwErrorAt___at_Lean_Elab_Command_MkInstanceName_main___spec__6(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; lean_object* x_7; lean_object* x_8; lean_object* x_9; uint8_t x_10;
|
||||
x_6 = l_Lean_Elab_Command_getRef(x_3, x_4, x_5);
|
||||
x_7 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_7);
|
||||
x_8 = lean_ctor_get(x_6, 1);
|
||||
lean_inc(x_8);
|
||||
lean_dec(x_6);
|
||||
x_9 = l_Lean_replaceRef(x_1, x_7);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_1);
|
||||
x_10 = !lean_is_exclusive(x_3);
|
||||
if (x_10 == 0)
|
||||
{
|
||||
lean_object* x_11; lean_object* x_12;
|
||||
x_11 = lean_ctor_get(x_3, 6);
|
||||
lean_dec(x_11);
|
||||
lean_ctor_set(x_3, 6, x_9);
|
||||
x_12 = l_Lean_throwError___at_Lean_Elab_Command_MkInstanceName_main___spec__7(x_2, x_3, x_4, x_8);
|
||||
lean_dec(x_4);
|
||||
return x_12;
|
||||
}
|
||||
else
|
||||
{
|
||||
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;
|
||||
x_13 = lean_ctor_get(x_3, 0);
|
||||
x_14 = lean_ctor_get(x_3, 1);
|
||||
x_15 = lean_ctor_get(x_3, 2);
|
||||
x_16 = lean_ctor_get(x_3, 3);
|
||||
x_17 = lean_ctor_get(x_3, 4);
|
||||
x_18 = lean_ctor_get(x_3, 5);
|
||||
lean_inc(x_18);
|
||||
lean_inc(x_17);
|
||||
lean_inc(x_16);
|
||||
lean_inc(x_15);
|
||||
lean_inc(x_14);
|
||||
lean_inc(x_13);
|
||||
lean_dec(x_3);
|
||||
x_19 = lean_alloc_ctor(0, 7, 0);
|
||||
lean_ctor_set(x_19, 0, x_13);
|
||||
lean_ctor_set(x_19, 1, x_14);
|
||||
lean_ctor_set(x_19, 2, x_15);
|
||||
lean_ctor_set(x_19, 3, x_16);
|
||||
lean_ctor_set(x_19, 4, x_17);
|
||||
lean_ctor_set(x_19, 5, x_18);
|
||||
lean_ctor_set(x_19, 6, x_9);
|
||||
x_20 = l_Lean_throwError___at_Lean_Elab_Command_MkInstanceName_main___spec__7(x_2, x_19, x_4, x_8);
|
||||
lean_dec(x_4);
|
||||
return x_20;
|
||||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Command_MkInstanceName_main___spec__8___rarg(lean_object* x_1) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_2; lean_object* x_3;
|
||||
x_2 = l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Command_MkInstanceName_main___spec__4___rarg___closed__1;
|
||||
x_3 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_3, 0, x_2);
|
||||
lean_ctor_set(x_3, 1, x_1);
|
||||
return x_3;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Command_MkInstanceName_main___spec__8(lean_object* x_1, lean_object* x_2) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_3;
|
||||
x_3 = lean_alloc_closure((void*)(l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Command_MkInstanceName_main___spec__8___rarg), 1, 0);
|
||||
return x_3;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_MkInstanceName_main___spec__5(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; 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; 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;
|
||||
x_5 = lean_st_ref_get(x_3, x_4);
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
x_7 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_7);
|
||||
lean_dec(x_5);
|
||||
x_8 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_8);
|
||||
lean_dec(x_6);
|
||||
x_9 = l_Lean_Elab_Command_getScope___rarg(x_3, x_7);
|
||||
x_10 = lean_ctor_get(x_9, 0);
|
||||
lean_inc(x_10);
|
||||
x_11 = lean_ctor_get(x_9, 1);
|
||||
lean_inc(x_11);
|
||||
lean_dec(x_9);
|
||||
x_12 = lean_ctor_get(x_10, 2);
|
||||
lean_inc(x_12);
|
||||
lean_dec(x_10);
|
||||
x_13 = l_Lean_Elab_Command_getScope___rarg(x_3, x_11);
|
||||
x_14 = lean_ctor_get(x_13, 0);
|
||||
lean_inc(x_14);
|
||||
x_15 = lean_ctor_get(x_13, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_13);
|
||||
x_16 = lean_ctor_get(x_14, 3);
|
||||
lean_inc(x_16);
|
||||
lean_dec(x_14);
|
||||
lean_inc(x_8);
|
||||
x_17 = lean_alloc_closure((void*)(l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_MkInstanceName_main___spec__1___lambda__1___boxed), 4, 1);
|
||||
lean_closure_set(x_17, 0, x_8);
|
||||
lean_inc(x_12);
|
||||
x_18 = lean_alloc_closure((void*)(l_ReaderT_pure___at_Lean_Elab_liftMacroM___spec__1___rarg___boxed), 3, 1);
|
||||
lean_closure_set(x_18, 0, x_12);
|
||||
lean_inc(x_8);
|
||||
x_19 = lean_alloc_closure((void*)(l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_MkInstanceName_main___spec__1___lambda__2___boxed), 4, 1);
|
||||
lean_closure_set(x_19, 0, x_8);
|
||||
lean_inc(x_16);
|
||||
lean_inc(x_12);
|
||||
lean_inc(x_8);
|
||||
x_20 = lean_alloc_closure((void*)(l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_MkInstanceName_main___spec__1___lambda__3___boxed), 6, 3);
|
||||
lean_closure_set(x_20, 0, x_8);
|
||||
lean_closure_set(x_20, 1, x_12);
|
||||
lean_closure_set(x_20, 2, x_16);
|
||||
lean_inc(x_8);
|
||||
x_21 = lean_alloc_closure((void*)(l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_MkInstanceName_main___spec__1___lambda__4___boxed), 6, 3);
|
||||
lean_closure_set(x_21, 0, x_8);
|
||||
lean_closure_set(x_21, 1, x_12);
|
||||
lean_closure_set(x_21, 2, x_16);
|
||||
x_22 = lean_alloc_ctor(0, 5, 0);
|
||||
lean_ctor_set(x_22, 0, x_17);
|
||||
lean_ctor_set(x_22, 1, x_18);
|
||||
lean_ctor_set(x_22, 2, x_19);
|
||||
lean_ctor_set(x_22, 3, x_20);
|
||||
lean_ctor_set(x_22, 4, x_21);
|
||||
x_23 = x_22;
|
||||
x_24 = l_Lean_Elab_Command_getRef(x_2, x_3, x_15);
|
||||
x_25 = lean_ctor_get(x_24, 0);
|
||||
lean_inc(x_25);
|
||||
x_26 = lean_ctor_get(x_24, 1);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_24);
|
||||
x_27 = l_Lean_Elab_Command_getCurrMacroScope(x_2, x_3, x_26);
|
||||
x_28 = lean_ctor_get(x_27, 0);
|
||||
lean_inc(x_28);
|
||||
x_29 = lean_ctor_get(x_27, 1);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_27);
|
||||
x_30 = lean_ctor_get(x_2, 2);
|
||||
lean_inc(x_30);
|
||||
x_31 = lean_st_ref_get(x_3, x_29);
|
||||
x_32 = lean_ctor_get(x_31, 0);
|
||||
lean_inc(x_32);
|
||||
x_33 = lean_ctor_get(x_31, 1);
|
||||
lean_inc(x_33);
|
||||
lean_dec(x_31);
|
||||
x_34 = lean_ctor_get(x_32, 4);
|
||||
lean_inc(x_34);
|
||||
lean_dec(x_32);
|
||||
x_35 = lean_st_ref_get(x_3, x_33);
|
||||
x_36 = lean_ctor_get(x_35, 0);
|
||||
lean_inc(x_36);
|
||||
x_37 = lean_ctor_get(x_35, 1);
|
||||
lean_inc(x_37);
|
||||
lean_dec(x_35);
|
||||
x_38 = lean_ctor_get(x_36, 3);
|
||||
lean_inc(x_38);
|
||||
lean_dec(x_36);
|
||||
x_39 = lean_environment_main_module(x_8);
|
||||
x_40 = lean_alloc_ctor(0, 6, 0);
|
||||
lean_ctor_set(x_40, 0, x_23);
|
||||
lean_ctor_set(x_40, 1, x_39);
|
||||
lean_ctor_set(x_40, 2, x_28);
|
||||
lean_ctor_set(x_40, 3, x_30);
|
||||
lean_ctor_set(x_40, 4, x_34);
|
||||
lean_ctor_set(x_40, 5, x_25);
|
||||
x_41 = lean_box(0);
|
||||
x_42 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_42, 0, x_38);
|
||||
lean_ctor_set(x_42, 1, x_41);
|
||||
x_43 = lean_apply_2(x_1, x_40, x_42);
|
||||
if (lean_obj_tag(x_43) == 0)
|
||||
{
|
||||
lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; uint8_t x_50;
|
||||
x_44 = lean_ctor_get(x_43, 0);
|
||||
lean_inc(x_44);
|
||||
x_45 = lean_ctor_get(x_43, 1);
|
||||
lean_inc(x_45);
|
||||
lean_dec(x_43);
|
||||
x_46 = lean_ctor_get(x_45, 0);
|
||||
lean_inc(x_46);
|
||||
x_47 = lean_st_ref_take(x_3, x_37);
|
||||
x_48 = lean_ctor_get(x_47, 0);
|
||||
lean_inc(x_48);
|
||||
x_49 = lean_ctor_get(x_47, 1);
|
||||
lean_inc(x_49);
|
||||
lean_dec(x_47);
|
||||
x_50 = !lean_is_exclusive(x_48);
|
||||
if (x_50 == 0)
|
||||
{
|
||||
lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; uint8_t x_57;
|
||||
x_51 = lean_ctor_get(x_48, 3);
|
||||
lean_dec(x_51);
|
||||
lean_ctor_set(x_48, 3, x_46);
|
||||
x_52 = lean_st_ref_set(x_3, x_48, x_49);
|
||||
x_53 = lean_ctor_get(x_52, 1);
|
||||
lean_inc(x_53);
|
||||
lean_dec(x_52);
|
||||
x_54 = lean_ctor_get(x_45, 1);
|
||||
lean_inc(x_54);
|
||||
lean_dec(x_45);
|
||||
x_55 = l_List_reverse___rarg(x_54);
|
||||
x_56 = l_List_forM___at_Lean_Elab_Command_elabCommand___spec__5(x_55, x_2, x_3, x_53);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
x_57 = !lean_is_exclusive(x_56);
|
||||
if (x_57 == 0)
|
||||
{
|
||||
lean_object* x_58;
|
||||
x_58 = lean_ctor_get(x_56, 0);
|
||||
lean_dec(x_58);
|
||||
lean_ctor_set(x_56, 0, x_44);
|
||||
return x_56;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_59; lean_object* x_60;
|
||||
x_59 = lean_ctor_get(x_56, 1);
|
||||
lean_inc(x_59);
|
||||
lean_dec(x_56);
|
||||
x_60 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_60, 0, x_44);
|
||||
lean_ctor_set(x_60, 1, x_59);
|
||||
return x_60;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77;
|
||||
x_61 = lean_ctor_get(x_48, 0);
|
||||
x_62 = lean_ctor_get(x_48, 1);
|
||||
x_63 = lean_ctor_get(x_48, 2);
|
||||
x_64 = lean_ctor_get(x_48, 4);
|
||||
x_65 = lean_ctor_get(x_48, 5);
|
||||
x_66 = lean_ctor_get(x_48, 6);
|
||||
x_67 = lean_ctor_get(x_48, 7);
|
||||
x_68 = lean_ctor_get(x_48, 8);
|
||||
lean_inc(x_68);
|
||||
lean_inc(x_67);
|
||||
lean_inc(x_66);
|
||||
lean_inc(x_65);
|
||||
lean_inc(x_64);
|
||||
lean_inc(x_63);
|
||||
lean_inc(x_62);
|
||||
lean_inc(x_61);
|
||||
lean_dec(x_48);
|
||||
x_69 = lean_alloc_ctor(0, 9, 0);
|
||||
lean_ctor_set(x_69, 0, x_61);
|
||||
lean_ctor_set(x_69, 1, x_62);
|
||||
lean_ctor_set(x_69, 2, x_63);
|
||||
lean_ctor_set(x_69, 3, x_46);
|
||||
lean_ctor_set(x_69, 4, x_64);
|
||||
lean_ctor_set(x_69, 5, x_65);
|
||||
lean_ctor_set(x_69, 6, x_66);
|
||||
lean_ctor_set(x_69, 7, x_67);
|
||||
lean_ctor_set(x_69, 8, x_68);
|
||||
x_70 = lean_st_ref_set(x_3, x_69, x_49);
|
||||
x_71 = lean_ctor_get(x_70, 1);
|
||||
lean_inc(x_71);
|
||||
lean_dec(x_70);
|
||||
x_72 = lean_ctor_get(x_45, 1);
|
||||
lean_inc(x_72);
|
||||
lean_dec(x_45);
|
||||
x_73 = l_List_reverse___rarg(x_72);
|
||||
x_74 = l_List_forM___at_Lean_Elab_Command_elabCommand___spec__5(x_73, x_2, x_3, x_71);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
x_75 = lean_ctor_get(x_74, 1);
|
||||
lean_inc(x_75);
|
||||
if (lean_is_exclusive(x_74)) {
|
||||
lean_ctor_release(x_74, 0);
|
||||
lean_ctor_release(x_74, 1);
|
||||
x_76 = x_74;
|
||||
} else {
|
||||
lean_dec_ref(x_74);
|
||||
x_76 = lean_box(0);
|
||||
}
|
||||
if (lean_is_scalar(x_76)) {
|
||||
x_77 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_77 = x_76;
|
||||
}
|
||||
lean_ctor_set(x_77, 0, x_44);
|
||||
lean_ctor_set(x_77, 1, x_75);
|
||||
return x_77;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_78;
|
||||
x_78 = lean_ctor_get(x_43, 0);
|
||||
lean_inc(x_78);
|
||||
lean_dec(x_43);
|
||||
if (lean_obj_tag(x_78) == 0)
|
||||
{
|
||||
lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83;
|
||||
x_79 = lean_ctor_get(x_78, 0);
|
||||
lean_inc(x_79);
|
||||
x_80 = lean_ctor_get(x_78, 1);
|
||||
lean_inc(x_80);
|
||||
lean_dec(x_78);
|
||||
x_81 = lean_alloc_ctor(2, 1, 0);
|
||||
lean_ctor_set(x_81, 0, x_80);
|
||||
x_82 = lean_alloc_ctor(0, 1, 0);
|
||||
lean_ctor_set(x_82, 0, x_81);
|
||||
x_83 = l_Lean_throwErrorAt___at_Lean_Elab_Command_MkInstanceName_main___spec__6(x_79, x_82, x_2, x_3, x_37);
|
||||
return x_83;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_84;
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
x_84 = l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Command_MkInstanceName_main___spec__8___rarg(x_37);
|
||||
return x_84;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Elab_Command_MkInstanceName_main___closed__1() {
|
||||
_start:
|
||||
{
|
||||
|
|
@ -5332,7 +4986,7 @@ x_5 = lean_alloc_closure((void*)(l_Lean_expandMacros), 3, 1);
|
|||
lean_closure_set(x_5, 0, x_1);
|
||||
lean_inc(x_3);
|
||||
lean_inc(x_2);
|
||||
x_6 = l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_MkInstanceName_main___spec__1(x_5, x_2, x_3, x_4);
|
||||
x_6 = l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_elabCommand___spec__10(x_5, x_2, x_3, x_4);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
{
|
||||
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; uint8_t x_18;
|
||||
|
|
@ -5373,7 +5027,7 @@ x_21 = lean_box(0);
|
|||
x_22 = lean_name_mk_string(x_21, x_20);
|
||||
x_23 = lean_alloc_closure((void*)(l_Lean_Elab_mkUnusedBaseName), 3, 1);
|
||||
lean_closure_set(x_23, 0, x_22);
|
||||
x_24 = l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_MkInstanceName_main___spec__5(x_23, x_2, x_3, x_17);
|
||||
x_24 = l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_MkInstanceName_main___spec__1(x_23, x_2, x_3, x_17);
|
||||
return x_24;
|
||||
}
|
||||
else
|
||||
|
|
@ -5469,25 +5123,6 @@ lean_dec(x_5);
|
|||
return x_7;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Command_MkInstanceName_main___spec__7___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
x_5 = l_Lean_throwError___at_Lean_Elab_Command_MkInstanceName_main___spec__7(x_1, x_2, x_3, x_4);
|
||||
lean_dec(x_3);
|
||||
return x_5;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Command_MkInstanceName_main___spec__8___boxed(lean_object* x_1, lean_object* x_2) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_3;
|
||||
x_3 = l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Command_MkInstanceName_main___spec__8(x_1, x_2);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
return x_3;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_MonadRef_mkInfoFromRefPos___at_Lean_Elab_Command_mkDefViewOfConstant___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
|
||||
_start:
|
||||
{
|
||||
|
|
|
|||
10
stage0/stdlib/Lean/Elab/Deriving/BEq.c
generated
10
stage0/stdlib/Lean/Elab/Deriving/BEq.c
generated
|
|
@ -30,7 +30,6 @@ lean_object* l_Lean_getConstInfo___at_Lean_Elab_elabDeriving___spec__14(lean_obj
|
|||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Deriving_BEq_0__Lean_Elab_Deriving_BEq_mkBEqInstanceCmds(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_Deriving_BEq_0__Lean_Elab_Deriving_BEq_mkBEqEnumFun___closed__13;
|
||||
lean_object* l_Lean_Elab_Command_liftTermElabM___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Deriving_BEq_mkMatch_mkElseAlt___closed__9;
|
||||
lean_object* lean_name_mk_string(lean_object*, lean_object*);
|
||||
uint8_t lean_usize_dec_eq(size_t, size_t);
|
||||
|
|
@ -115,6 +114,7 @@ LEAN_EXPORT lean_object* l_Lean_isInductive___at_Lean_Elab_Deriving_BEq_mkBEqIns
|
|||
lean_object* l_Lean_Expr_fvarId_x21(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Deriving_BEq_mkMatch(lean_object*);
|
||||
static lean_object* l_Lean_Elab_Deriving_BEq_mkAuxFunction___lambda__1___closed__1;
|
||||
lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_Deriving_BEq_0__Lean_Elab_Deriving_BEq_mkBEqEnumFun___closed__14;
|
||||
static lean_object* l_Lean_Elab_Deriving_BEq_mkMatch_mkElseAlt___closed__5;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Deriving_BEq_0__Lean_Elab_Deriving_BEq_mkBEqEnumFun(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -7037,7 +7037,7 @@ x_112 = 0;
|
|||
x_113 = lean_usize_of_nat(x_105);
|
||||
lean_dec(x_105);
|
||||
x_114 = lean_box(0);
|
||||
x_115 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_103, x_112, x_113, x_114, x_2, x_3, x_104);
|
||||
x_115 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_103, x_112, x_113, x_114, x_2, x_3, x_104);
|
||||
lean_dec(x_103);
|
||||
if (lean_obj_tag(x_115) == 0)
|
||||
{
|
||||
|
|
@ -7141,7 +7141,7 @@ x_139 = 0;
|
|||
x_140 = lean_usize_of_nat(x_130);
|
||||
lean_dec(x_130);
|
||||
x_141 = lean_box(0);
|
||||
x_142 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_128, x_139, x_140, x_141, x_2, x_3, x_129);
|
||||
x_142 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_128, x_139, x_140, x_141, x_2, x_3, x_129);
|
||||
lean_dec(x_128);
|
||||
if (lean_obj_tag(x_142) == 0)
|
||||
{
|
||||
|
|
@ -7377,7 +7377,7 @@ x_36 = 0;
|
|||
x_37 = lean_usize_of_nat(x_29);
|
||||
lean_dec(x_29);
|
||||
x_38 = lean_box(0);
|
||||
x_39 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_27, x_36, x_37, x_38, x_2, x_3, x_28);
|
||||
x_39 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_27, x_36, x_37, x_38, x_2, x_3, x_28);
|
||||
lean_dec(x_27);
|
||||
if (lean_obj_tag(x_39) == 0)
|
||||
{
|
||||
|
|
@ -7481,7 +7481,7 @@ x_63 = 0;
|
|||
x_64 = lean_usize_of_nat(x_54);
|
||||
lean_dec(x_54);
|
||||
x_65 = lean_box(0);
|
||||
x_66 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_52, x_63, x_64, x_65, x_2, x_3, x_53);
|
||||
x_66 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_52, x_63, x_64, x_65, x_2, x_3, x_53);
|
||||
lean_dec(x_52);
|
||||
if (lean_obj_tag(x_66) == 0)
|
||||
{
|
||||
|
|
|
|||
6
stage0/stdlib/Lean/Elab/Deriving/Basic.c
generated
6
stage0/stdlib/Lean/Elab/Deriving/Basic.c
generated
|
|
@ -125,6 +125,7 @@ static lean_object* l_Lean_Elab_elabDeriving___closed__6;
|
|||
LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_elabDeriving___spec__15(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_ResolveName_resolveGlobalName(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
size_t lean_usize_of_nat(lean_object*);
|
||||
lean_object* l_Lean_throwErrorAt___at_Lean_Elab_Command_MkInstanceName_main___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Elab_elabDeriving___spec__18___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_mkConstWithLevelParams___at_Lean_Elab_elabDeriving___spec__13___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_elabDeriving___spec__19(lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -137,7 +138,6 @@ LEAN_EXPORT lean_object* l_Lean_Elab_elabDeriving___lambda__1(lean_object*, lean
|
|||
lean_object* l_List_filterAux___at_Lean_resolveGlobalConstCore___spec__1(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_elabDeriving___lambda__1___boxed(lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Std_PersistentArray_push___rarg(lean_object*, lean_object*);
|
||||
lean_object* l_Lean_throwErrorAt___at_Lean_Elab_Command_MkInstanceName_main___spec__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_elabDeriving___lambda__3(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_getOptDerivingClasses___rarg___lambda__1(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Deriving_Basic_0__Lean_Elab_tryApplyDefHandler___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -1317,7 +1317,7 @@ x_24 = lean_alloc_ctor(2, 1, 0);
|
|||
lean_ctor_set(x_24, 0, x_23);
|
||||
x_25 = lean_alloc_ctor(0, 1, 0);
|
||||
lean_ctor_set(x_25, 0, x_24);
|
||||
x_26 = l_Lean_throwErrorAt___at_Lean_Elab_Command_MkInstanceName_main___spec__6(x_1, x_25, x_2, x_3, x_7);
|
||||
x_26 = l_Lean_throwErrorAt___at_Lean_Elab_Command_MkInstanceName_main___spec__2(x_1, x_25, x_2, x_3, x_7);
|
||||
return x_26;
|
||||
}
|
||||
else
|
||||
|
|
@ -1388,7 +1388,7 @@ x_51 = lean_alloc_ctor(2, 1, 0);
|
|||
lean_ctor_set(x_51, 0, x_50);
|
||||
x_52 = lean_alloc_ctor(0, 1, 0);
|
||||
lean_ctor_set(x_52, 0, x_51);
|
||||
x_53 = l_Lean_throwErrorAt___at_Lean_Elab_Command_MkInstanceName_main___spec__6(x_1, x_52, x_2, x_3, x_34);
|
||||
x_53 = l_Lean_throwErrorAt___at_Lean_Elab_Command_MkInstanceName_main___spec__2(x_1, x_52, x_2, x_3, x_34);
|
||||
return x_53;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
12
stage0/stdlib/Lean/Elab/Deriving/DecEq.c
generated
12
stage0/stdlib/Lean/Elab/Deriving/DecEq.c
generated
|
|
@ -31,7 +31,6 @@ lean_object* l_Lean_stringToMessageData(lean_object*);
|
|||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkDecEqEnum___closed__62;
|
||||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkEnumOfNatThm___closed__3;
|
||||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkDecEqHeader___rarg___closed__2;
|
||||
lean_object* l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkMatch_mkSameCtorRhs___lambda__1___closed__81;
|
||||
lean_object* lean_mk_empty_array_with_capacity(lean_object*);
|
||||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkDecEqEnum___closed__54;
|
||||
|
|
@ -43,7 +42,6 @@ lean_object* l_Lean_getConstInfo___at_Lean_Elab_elabDeriving___spec__14(lean_obj
|
|||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkDecEqEnum___closed__14;
|
||||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkAuxFunction___closed__1;
|
||||
lean_object* l_Lean_Elab_Command_liftTermElabM___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* lean_name_mk_string(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkDecEqEnum___closed__50;
|
||||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkDecEqEnum___closed__17;
|
||||
|
|
@ -184,6 +182,7 @@ static lean_object* l_Lean_Elab_Deriving_DecEq_mkMatch_mkSameCtorRhs___lambda__1
|
|||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkMatch_mkSameCtorRhs___closed__8;
|
||||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkMatch_mkSameCtorRhs___lambda__1___closed__57;
|
||||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkEnumOfNat_mkDecTree___closed__2;
|
||||
lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_DecEq_mkMatch_mkAlts___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkMatch_mkSameCtorRhs___lambda__1___closed__36;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Deriving_DecEq_mkDecEqCmds(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -351,6 +350,7 @@ static lean_object* l_List_forIn_loop___at_Lean_Elab_Deriving_DecEq_mkMatch_mkAl
|
|||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkDecEqEnum___closed__8;
|
||||
extern lean_object* l_Lean_instInhabitedInductiveVal;
|
||||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkMatch_mkSameCtorRhs___lambda__1___closed__85;
|
||||
lean_object* l_Lean_getConstInfoInduct___at___private_Lean_Meta_ExprDefEq_0__Lean_Meta_isDefEqEtaStruct___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkMatch_mkSameCtorRhs___lambda__1___closed__56;
|
||||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkEnumOfNat_mkDecTree___closed__7;
|
||||
static lean_object* l_Lean_Elab_Deriving_DecEq_mkDecEqEnum___closed__44;
|
||||
|
|
@ -6751,7 +6751,7 @@ x_23 = 0;
|
|||
x_24 = lean_usize_of_nat(x_15);
|
||||
lean_dec(x_15);
|
||||
x_25 = lean_box(0);
|
||||
x_26 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_13, x_23, x_24, x_25, x_2, x_3, x_14);
|
||||
x_26 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_13, x_23, x_24, x_25, x_2, x_3, x_14);
|
||||
lean_dec(x_13);
|
||||
if (lean_obj_tag(x_26) == 0)
|
||||
{
|
||||
|
|
@ -6856,7 +6856,7 @@ x_51 = 0;
|
|||
x_52 = lean_usize_of_nat(x_41);
|
||||
lean_dec(x_41);
|
||||
x_53 = lean_box(0);
|
||||
x_54 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_39, x_51, x_52, x_53, x_2, x_3, x_40);
|
||||
x_54 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_39, x_51, x_52, x_53, x_2, x_3, x_40);
|
||||
lean_dec(x_39);
|
||||
if (lean_obj_tag(x_54) == 0)
|
||||
{
|
||||
|
|
@ -7294,7 +7294,7 @@ _start:
|
|||
{
|
||||
lean_object* x_7;
|
||||
lean_inc(x_1);
|
||||
x_7 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(x_1, x_2, x_3, x_4, x_5, x_6);
|
||||
x_7 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_ExprDefEq_0__Lean_Meta_isDefEqEtaStruct___spec__1(x_1, x_2, x_3, x_4, x_5, 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; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20;
|
||||
|
|
@ -7676,7 +7676,7 @@ _start:
|
|||
{
|
||||
lean_object* x_7;
|
||||
lean_inc(x_1);
|
||||
x_7 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(x_1, x_2, x_3, x_4, x_5, x_6);
|
||||
x_7 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_ExprDefEq_0__Lean_Meta_isDefEqEtaStruct___spec__1(x_1, x_2, x_3, x_4, x_5, 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; 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; uint8_t x_25; lean_object* x_26;
|
||||
|
|
|
|||
18
stage0/stdlib/Lean/Elab/Deriving/FromToJson.c
generated
18
stage0/stdlib/Lean/Elab/Deriving/FromToJson.c
generated
|
|
@ -40,7 +40,6 @@ static lean_object* l_Array_mapMUnsafe_map___at_Lean_Elab_Deriving_FromToJson_mk
|
|||
lean_object* l_Lean_LocalDecl_userName(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Deriving_FromToJson_mkToJsonInstanceHandler___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Elab_Command_liftTermElabM___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* lean_name_mk_string(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Deriving_FromToJson_mkFromJsonInstanceHandler___lambda__1___closed__13;
|
||||
uint8_t lean_usize_dec_eq(size_t, size_t);
|
||||
|
|
@ -198,6 +197,7 @@ lean_object* l_Lean_Expr_fvarId_x21(lean_object*);
|
|||
static lean_object* l_Array_mapMUnsafe_map___at_Lean_Elab_Deriving_FromToJson_mkFromJsonInstanceHandler_mkAlts___spec__6___lambda__1___closed__7;
|
||||
static lean_object* l_Lean_Elab_Deriving_FromToJson_mkToJsonInstanceHandler___lambda__4___closed__15;
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Elab_Deriving_FromToJson_mkToJsonInstanceHandler_mkAlts___spec__5___lambda__1(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* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Deriving_FromToJson_mkToJsonInstanceHandler___lambda__3___closed__26;
|
||||
static lean_object* l_Array_mapIdxM_map___at_Lean_Elab_Deriving_FromToJson_mkFromJsonInstanceHandler_mkAlts___spec__3___closed__5;
|
||||
static lean_object* l_Lean_Elab_Deriving_FromToJson_mkToJsonInstanceHandler___lambda__1___closed__7;
|
||||
|
|
@ -7320,7 +7320,7 @@ x_35 = 0;
|
|||
x_36 = lean_usize_of_nat(x_28);
|
||||
lean_dec(x_28);
|
||||
x_37 = lean_box(0);
|
||||
x_38 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_26, x_35, x_36, x_37, x_2, x_3, x_27);
|
||||
x_38 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_26, x_35, x_36, x_37, x_2, x_3, x_27);
|
||||
lean_dec(x_26);
|
||||
if (lean_obj_tag(x_38) == 0)
|
||||
{
|
||||
|
|
@ -7424,7 +7424,7 @@ x_62 = 0;
|
|||
x_63 = lean_usize_of_nat(x_53);
|
||||
lean_dec(x_53);
|
||||
x_64 = lean_box(0);
|
||||
x_65 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_51, x_62, x_63, x_64, x_2, x_3, x_52);
|
||||
x_65 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_51, x_62, x_63, x_64, x_2, x_3, x_52);
|
||||
lean_dec(x_51);
|
||||
if (lean_obj_tag(x_65) == 0)
|
||||
{
|
||||
|
|
@ -7586,7 +7586,7 @@ x_96 = 0;
|
|||
x_97 = lean_usize_of_nat(x_89);
|
||||
lean_dec(x_89);
|
||||
x_98 = lean_box(0);
|
||||
x_99 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_87, x_96, x_97, x_98, x_2, x_3, x_88);
|
||||
x_99 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_87, x_96, x_97, x_98, x_2, x_3, x_88);
|
||||
lean_dec(x_87);
|
||||
if (lean_obj_tag(x_99) == 0)
|
||||
{
|
||||
|
|
@ -7690,7 +7690,7 @@ x_123 = 0;
|
|||
x_124 = lean_usize_of_nat(x_114);
|
||||
lean_dec(x_114);
|
||||
x_125 = lean_box(0);
|
||||
x_126 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_112, x_123, x_124, x_125, x_2, x_3, x_113);
|
||||
x_126 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_112, x_123, x_124, x_125, x_2, x_3, x_113);
|
||||
lean_dec(x_112);
|
||||
if (lean_obj_tag(x_126) == 0)
|
||||
{
|
||||
|
|
@ -13766,7 +13766,7 @@ x_35 = 0;
|
|||
x_36 = lean_usize_of_nat(x_28);
|
||||
lean_dec(x_28);
|
||||
x_37 = lean_box(0);
|
||||
x_38 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_26, x_35, x_36, x_37, x_2, x_3, x_27);
|
||||
x_38 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_26, x_35, x_36, x_37, x_2, x_3, x_27);
|
||||
lean_dec(x_26);
|
||||
if (lean_obj_tag(x_38) == 0)
|
||||
{
|
||||
|
|
@ -13870,7 +13870,7 @@ x_62 = 0;
|
|||
x_63 = lean_usize_of_nat(x_53);
|
||||
lean_dec(x_53);
|
||||
x_64 = lean_box(0);
|
||||
x_65 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_51, x_62, x_63, x_64, x_2, x_3, x_52);
|
||||
x_65 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_51, x_62, x_63, x_64, x_2, x_3, x_52);
|
||||
lean_dec(x_51);
|
||||
if (lean_obj_tag(x_65) == 0)
|
||||
{
|
||||
|
|
@ -14032,7 +14032,7 @@ x_96 = 0;
|
|||
x_97 = lean_usize_of_nat(x_89);
|
||||
lean_dec(x_89);
|
||||
x_98 = lean_box(0);
|
||||
x_99 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_87, x_96, x_97, x_98, x_2, x_3, x_88);
|
||||
x_99 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_87, x_96, x_97, x_98, x_2, x_3, x_88);
|
||||
lean_dec(x_87);
|
||||
if (lean_obj_tag(x_99) == 0)
|
||||
{
|
||||
|
|
@ -14136,7 +14136,7 @@ x_123 = 0;
|
|||
x_124 = lean_usize_of_nat(x_114);
|
||||
lean_dec(x_114);
|
||||
x_125 = lean_box(0);
|
||||
x_126 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_112, x_123, x_124, x_125, x_2, x_3, x_113);
|
||||
x_126 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_112, x_123, x_124, x_125, x_2, x_3, x_113);
|
||||
lean_dec(x_112);
|
||||
if (lean_obj_tag(x_126) == 0)
|
||||
{
|
||||
|
|
|
|||
6
stage0/stdlib/Lean/Elab/Deriving/Hashable.c
generated
6
stage0/stdlib/Lean/Elab/Deriving/Hashable.c
generated
|
|
@ -24,7 +24,6 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Deriving_Hashable_mkHashableHandler(lean_ob
|
|||
static lean_object* l_Lean_Elab_Deriving_Hashable_mkAuxFunction___closed__10;
|
||||
static lean_object* l_List_forIn_loop___at_Lean_Elab_Deriving_Hashable_mkMatch_mkAlts___spec__5___lambda__1___closed__9;
|
||||
lean_object* l_Lean_Elab_Command_liftTermElabM___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Hashable_mkMatch_mkAlts___spec__4___closed__24;
|
||||
static lean_object* l_Lean_Elab_Deriving_Hashable_mkAuxFunction___closed__24;
|
||||
lean_object* lean_name_mk_string(lean_object*, lean_object*);
|
||||
|
|
@ -102,6 +101,7 @@ lean_object* lean_array_get(lean_object*, lean_object*, lean_object*);
|
|||
static lean_object* l___private_Lean_Elab_Deriving_Hashable_0__Lean_Elab_Deriving_Hashable_mkHashableInstanceCmds___closed__7;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Deriving_Hashable_mkMatch___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Hashable_mkMatch_mkAlts___spec__4___closed__6;
|
||||
lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_isInductive___at_Lean_Elab_Deriving_Hashable_mkHashableHandler___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Hashable_mkMatch_mkAlts___spec__4___closed__23;
|
||||
static lean_object* l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Hashable_mkMatch_mkAlts___spec__4___closed__14;
|
||||
|
|
@ -4381,7 +4381,7 @@ x_29 = 0;
|
|||
x_30 = lean_usize_of_nat(x_22);
|
||||
lean_dec(x_22);
|
||||
x_31 = lean_box(0);
|
||||
x_32 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_20, x_29, x_30, x_31, x_2, x_3, x_21);
|
||||
x_32 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_20, x_29, x_30, x_31, x_2, x_3, x_21);
|
||||
lean_dec(x_20);
|
||||
if (lean_obj_tag(x_32) == 0)
|
||||
{
|
||||
|
|
@ -4485,7 +4485,7 @@ x_56 = 0;
|
|||
x_57 = lean_usize_of_nat(x_47);
|
||||
lean_dec(x_47);
|
||||
x_58 = lean_box(0);
|
||||
x_59 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_45, x_56, x_57, x_58, x_2, x_3, x_46);
|
||||
x_59 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_45, x_56, x_57, x_58, x_2, x_3, x_46);
|
||||
lean_dec(x_45);
|
||||
if (lean_obj_tag(x_59) == 0)
|
||||
{
|
||||
|
|
|
|||
6
stage0/stdlib/Lean/Elab/Deriving/Ord.c
generated
6
stage0/stdlib/Lean/Elab/Deriving/Ord.c
generated
|
|
@ -33,7 +33,6 @@ lean_object* lean_mk_empty_array_with_capacity(lean_object*);
|
|||
static lean_object* l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Ord_mkMatch_mkAlts___spec__3___closed__3;
|
||||
static lean_object* l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Ord_mkMatch_mkAlts___spec__5___closed__31;
|
||||
lean_object* l_Lean_Elab_Command_liftTermElabM___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* lean_name_mk_string(lean_object*, lean_object*);
|
||||
uint8_t lean_usize_dec_eq(size_t, size_t);
|
||||
lean_object* lean_array_uget(lean_object*, size_t);
|
||||
|
|
@ -116,6 +115,7 @@ lean_object* lean_array_get(lean_object*, lean_object*, lean_object*);
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_Deriving_Ord_mkOrdInstanceHandler(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Expr_fvarId_x21(lean_object*);
|
||||
static lean_object* l_Lean_Elab_Deriving_Ord_mkAuxFunction___lambda__1___closed__28;
|
||||
lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Ord_mkMatch_mkAlts___spec__5___closed__17;
|
||||
static lean_object* l_Lean_Elab_Deriving_Ord_mkAuxFunction___lambda__1___closed__5;
|
||||
static lean_object* l_Lean_Elab_Deriving_Ord_mkAuxFunction___lambda__1___closed__29;
|
||||
|
|
@ -5698,7 +5698,7 @@ x_29 = 0;
|
|||
x_30 = lean_usize_of_nat(x_22);
|
||||
lean_dec(x_22);
|
||||
x_31 = lean_box(0);
|
||||
x_32 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_20, x_29, x_30, x_31, x_2, x_3, x_21);
|
||||
x_32 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_20, x_29, x_30, x_31, x_2, x_3, x_21);
|
||||
lean_dec(x_20);
|
||||
if (lean_obj_tag(x_32) == 0)
|
||||
{
|
||||
|
|
@ -5802,7 +5802,7 @@ x_56 = 0;
|
|||
x_57 = lean_usize_of_nat(x_47);
|
||||
lean_dec(x_47);
|
||||
x_58 = lean_box(0);
|
||||
x_59 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_45, x_56, x_57, x_58, x_2, x_3, x_46);
|
||||
x_59 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_45, x_56, x_57, x_58, x_2, x_3, x_46);
|
||||
lean_dec(x_45);
|
||||
if (lean_obj_tag(x_59) == 0)
|
||||
{
|
||||
|
|
|
|||
6
stage0/stdlib/Lean/Elab/Deriving/Repr.c
generated
6
stage0/stdlib/Lean/Elab/Deriving/Repr.c
generated
|
|
@ -28,7 +28,6 @@ lean_object* lean_mk_empty_array_with_capacity(lean_object*);
|
|||
static lean_object* l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForInduct_mkAlts___spec__1___closed__2;
|
||||
static lean_object* l_Lean_Elab_Deriving_Repr_mkBodyForStruct___rarg___lambda__2___closed__7;
|
||||
lean_object* l_Lean_Elab_Command_liftTermElabM___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* lean_name_mk_string(lean_object*, lean_object*);
|
||||
uint8_t lean_usize_dec_eq(size_t, size_t);
|
||||
lean_object* lean_array_uget(lean_object*, size_t);
|
||||
|
|
@ -141,6 +140,7 @@ LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkM
|
|||
lean_object* lean_array_get(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Deriving_Repr_mkBodyForStruct___rarg___lambda__1(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*);
|
||||
static lean_object* l_Lean_Elab_Deriving_Repr_mkAuxFunction___lambda__1___closed__4;
|
||||
lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Deriving_Repr_mkAuxFunction___lambda__1___closed__27;
|
||||
static lean_object* l_Lean_Elab_Deriving_Repr_mkReprHeader___rarg___closed__19;
|
||||
static lean_object* l_List_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForInduct_mkAlts___spec__3___lambda__1___closed__27;
|
||||
|
|
@ -7657,7 +7657,7 @@ x_29 = 0;
|
|||
x_30 = lean_usize_of_nat(x_22);
|
||||
lean_dec(x_22);
|
||||
x_31 = lean_box(0);
|
||||
x_32 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_20, x_29, x_30, x_31, x_2, x_3, x_21);
|
||||
x_32 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_20, x_29, x_30, x_31, x_2, x_3, x_21);
|
||||
lean_dec(x_20);
|
||||
if (lean_obj_tag(x_32) == 0)
|
||||
{
|
||||
|
|
@ -7761,7 +7761,7 @@ x_56 = 0;
|
|||
x_57 = lean_usize_of_nat(x_47);
|
||||
lean_dec(x_47);
|
||||
x_58 = lean_box(0);
|
||||
x_59 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__10(x_45, x_56, x_57, x_58, x_2, x_3, x_46);
|
||||
x_59 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabCommand___spec__15(x_45, x_56, x_57, x_58, x_2, x_3, x_46);
|
||||
lean_dec(x_45);
|
||||
if (lean_obj_tag(x_59) == 0)
|
||||
{
|
||||
|
|
|
|||
45
stage0/stdlib/Lean/Elab/Do.c
generated
45
stage0/stdlib/Lean/Elab/Do.c
generated
|
|
@ -6900,11 +6900,8 @@ return x_8;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Term_Do_mkJmp___spec__2___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
lean_object* x_5; lean_object* x_6;
|
||||
x_5 = l_Lean_Elab_expandMacroImpl_x3f(x_1, x_2, x_3, x_4);
|
||||
if (lean_obj_tag(x_5) == 0)
|
||||
{
|
||||
lean_object* x_6;
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
|
|
@ -6921,36 +6918,42 @@ 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_object* x_10; lean_object* x_11;
|
||||
x_10 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_10);
|
||||
lean_dec(x_6);
|
||||
x_11 = lean_ctor_get(x_5, 1);
|
||||
x_11 = lean_ctor_get(x_10, 1);
|
||||
lean_inc(x_11);
|
||||
lean_dec(x_5);
|
||||
x_12 = lean_ctor_get(x_10, 1);
|
||||
lean_inc(x_12);
|
||||
lean_dec(x_10);
|
||||
x_13 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_13, 0, x_12);
|
||||
if (lean_obj_tag(x_11) == 0)
|
||||
{
|
||||
lean_object* x_12; lean_object* x_13; lean_object* x_14;
|
||||
lean_dec(x_11);
|
||||
x_12 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_12);
|
||||
lean_dec(x_5);
|
||||
x_13 = lean_box(0);
|
||||
x_14 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_14, 0, x_13);
|
||||
lean_ctor_set(x_14, 1, x_11);
|
||||
lean_ctor_set(x_14, 1, x_12);
|
||||
return x_14;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_ctor_get(x_5, 0);
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18;
|
||||
x_15 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_15);
|
||||
x_16 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_16);
|
||||
lean_dec(x_5);
|
||||
x_17 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_17, 0, x_15);
|
||||
lean_ctor_set(x_17, 1, x_16);
|
||||
return x_17;
|
||||
x_16 = lean_ctor_get(x_11, 0);
|
||||
lean_inc(x_16);
|
||||
lean_dec(x_11);
|
||||
x_17 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_17, 0, x_16);
|
||||
x_18 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_18, 0, x_17);
|
||||
lean_ctor_set(x_18, 1, x_15);
|
||||
return x_18;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
546
stage0/stdlib/Lean/Elab/ElabRules.c
generated
546
stage0/stdlib/Lean/Elab/ElabRules.c
generated
File diff suppressed because it is too large
Load diff
68
stage0/stdlib/Lean/Elab/Frontend.c
generated
68
stage0/stdlib/Lean/Elab/Frontend.c
generated
|
|
@ -22,7 +22,7 @@ lean_object* lean_name_mk_string(lean_object*, lean_object*);
|
|||
lean_object* l_Lean_Parser_parseHeader(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Frontend_State_commands___default;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_IO_processCommands(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* lean_run_frontend(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* lean_run_frontend(lean_object*, lean_object*, lean_object*, lean_object*, uint32_t, lean_object*);
|
||||
static lean_object* l_Lean_Elab_process___closed__1;
|
||||
lean_object* lean_environment_set_main_module(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Frontend_setCommandState___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -101,6 +101,7 @@ LEAN_EXPORT uint8_t l_Lean_Elab_getPrintMessageEndPos(lean_object*);
|
|||
static lean_object* l_Lean_Elab_process___closed__5;
|
||||
LEAN_EXPORT lean_object* l_Lean_profileitM___at_Lean_Elab_Frontend_processCommand___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Frontend_getParserState___rarg___boxed(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_runFrontend___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Message_toString(lean_object*, uint8_t, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Frontend_getParserState___boxed(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_process(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -2558,35 +2559,34 @@ return x_23;
|
|||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* lean_run_frontend(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) {
|
||||
LEAN_EXPORT lean_object* lean_run_frontend(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, uint32_t x_5, lean_object* x_6) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_6; lean_object* x_7;
|
||||
x_6 = l_Lean_Parser_mkInputContext(x_1, x_3);
|
||||
lean_inc(x_6);
|
||||
x_7 = l_Lean_Parser_parseHeader(x_6, x_5);
|
||||
if (lean_obj_tag(x_7) == 0)
|
||||
lean_object* x_7; lean_object* x_8;
|
||||
x_7 = l_Lean_Parser_mkInputContext(x_1, x_3);
|
||||
lean_inc(x_7);
|
||||
x_8 = l_Lean_Parser_parseHeader(x_7, x_6);
|
||||
if (lean_obj_tag(x_8) == 0)
|
||||
{
|
||||
lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint32_t x_14; lean_object* x_15;
|
||||
x_8 = lean_ctor_get(x_7, 0);
|
||||
lean_inc(x_8);
|
||||
x_9 = lean_ctor_get(x_8, 1);
|
||||
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_9 = lean_ctor_get(x_8, 0);
|
||||
lean_inc(x_9);
|
||||
x_10 = lean_ctor_get(x_7, 1);
|
||||
x_10 = lean_ctor_get(x_9, 1);
|
||||
lean_inc(x_10);
|
||||
lean_dec(x_7);
|
||||
x_11 = lean_ctor_get(x_8, 0);
|
||||
x_11 = lean_ctor_get(x_8, 1);
|
||||
lean_inc(x_11);
|
||||
lean_dec(x_8);
|
||||
x_12 = lean_ctor_get(x_9, 0);
|
||||
lean_inc(x_12);
|
||||
x_13 = lean_ctor_get(x_9, 1);
|
||||
lean_inc(x_13);
|
||||
lean_dec(x_9);
|
||||
x_14 = 0;
|
||||
x_13 = lean_ctor_get(x_10, 0);
|
||||
lean_inc(x_13);
|
||||
x_14 = lean_ctor_get(x_10, 1);
|
||||
lean_inc(x_14);
|
||||
lean_dec(x_10);
|
||||
lean_inc(x_2);
|
||||
x_15 = l_Lean_Elab_processHeader(x_11, x_2, x_13, x_6, x_14, x_10);
|
||||
lean_dec(x_11);
|
||||
x_15 = l_Lean_Elab_processHeader(x_12, x_2, x_14, x_7, x_5, x_11);
|
||||
lean_dec(x_12);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_16; lean_object* x_17; uint8_t x_18;
|
||||
|
|
@ -2604,7 +2604,7 @@ x_20 = lean_ctor_get(x_16, 1);
|
|||
x_21 = lean_environment_set_main_module(x_19, x_4);
|
||||
lean_inc(x_2);
|
||||
x_22 = l_Lean_Elab_Command_mkState(x_21, x_20, x_2);
|
||||
x_23 = l_Lean_Elab_IO_processCommands(x_6, x_12, x_22, x_17);
|
||||
x_23 = l_Lean_Elab_IO_processCommands(x_7, x_13, x_22, x_17);
|
||||
if (lean_obj_tag(x_23) == 0)
|
||||
{
|
||||
lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
|
|
@ -2752,7 +2752,7 @@ lean_dec(x_16);
|
|||
x_57 = lean_environment_set_main_module(x_55, x_4);
|
||||
lean_inc(x_2);
|
||||
x_58 = l_Lean_Elab_Command_mkState(x_57, x_56, x_2);
|
||||
x_59 = l_Lean_Elab_IO_processCommands(x_6, x_12, x_58, x_17);
|
||||
x_59 = l_Lean_Elab_IO_processCommands(x_7, x_13, x_58, x_17);
|
||||
if (lean_obj_tag(x_59) == 0)
|
||||
{
|
||||
lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67;
|
||||
|
|
@ -2880,8 +2880,8 @@ return x_86;
|
|||
else
|
||||
{
|
||||
uint8_t x_87;
|
||||
lean_dec(x_12);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_13);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
x_87 = !lean_is_exclusive(x_15);
|
||||
|
|
@ -2907,22 +2907,22 @@ return x_90;
|
|||
else
|
||||
{
|
||||
uint8_t x_91;
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
x_91 = !lean_is_exclusive(x_7);
|
||||
x_91 = !lean_is_exclusive(x_8);
|
||||
if (x_91 == 0)
|
||||
{
|
||||
return x_7;
|
||||
return x_8;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_92; lean_object* x_93; lean_object* x_94;
|
||||
x_92 = lean_ctor_get(x_7, 0);
|
||||
x_93 = lean_ctor_get(x_7, 1);
|
||||
x_92 = lean_ctor_get(x_8, 0);
|
||||
x_93 = lean_ctor_get(x_8, 1);
|
||||
lean_inc(x_93);
|
||||
lean_inc(x_92);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_8);
|
||||
x_94 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_94, 0, x_92);
|
||||
lean_ctor_set(x_94, 1, x_93);
|
||||
|
|
@ -2940,6 +2940,16 @@ lean_dec(x_1);
|
|||
return x_5;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_runFrontend___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) {
|
||||
_start:
|
||||
{
|
||||
uint32_t x_7; lean_object* x_8;
|
||||
x_7 = lean_unbox_uint32(x_5);
|
||||
lean_dec(x_5);
|
||||
x_8 = lean_run_frontend(x_1, x_2, x_3, x_4, x_7, x_6);
|
||||
return x_8;
|
||||
}
|
||||
}
|
||||
lean_object* initialize_Init(lean_object*);
|
||||
lean_object* initialize_Lean_Elab_Import(lean_object*);
|
||||
lean_object* initialize_Lean_Elab_Command(lean_object*);
|
||||
|
|
|
|||
157
stage0/stdlib/Lean/Elab/LetRec.c
generated
157
stage0/stdlib/Lean/Elab/LetRec.c
generated
|
|
@ -1441,11 +1441,8 @@ return x_7;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at___private_Lean_Elab_LetRec_0__Lean_Elab_Term_mkLetRecDeclView___spec__16___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
lean_object* x_5; lean_object* x_6;
|
||||
x_5 = l_Lean_Elab_expandMacroImpl_x3f(x_1, x_2, x_3, x_4);
|
||||
if (lean_obj_tag(x_5) == 0)
|
||||
{
|
||||
lean_object* x_6;
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
|
|
@ -1480,89 +1477,131 @@ uint8_t x_13;
|
|||
x_13 = !lean_is_exclusive(x_6);
|
||||
if (x_13 == 0)
|
||||
{
|
||||
uint8_t x_14;
|
||||
x_14 = !lean_is_exclusive(x_5);
|
||||
if (x_14 == 0)
|
||||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_ctor_get(x_6, 0);
|
||||
x_15 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_14);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_ctor_get(x_6, 0);
|
||||
x_16 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
uint8_t x_16;
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_17);
|
||||
lean_free_object(x_6);
|
||||
x_16 = !lean_is_exclusive(x_5);
|
||||
if (x_16 == 0)
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18;
|
||||
x_17 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_17);
|
||||
x_18 = lean_box(0);
|
||||
lean_ctor_set(x_5, 0, x_18);
|
||||
return x_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_18 = lean_ctor_get(x_6, 0);
|
||||
lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_19 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_5);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
lean_ctor_set(x_6, 0, x_20);
|
||||
x_20 = lean_box(0);
|
||||
x_21 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_21, 0, x_6);
|
||||
lean_ctor_set(x_21, 0, x_20);
|
||||
lean_ctor_set(x_21, 1, x_19);
|
||||
return x_21;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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_22 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_6);
|
||||
x_23 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_23);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_24 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_24 = lean_box(0);
|
||||
uint8_t x_22;
|
||||
x_22 = !lean_is_exclusive(x_5);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_23);
|
||||
x_24 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_24);
|
||||
return x_5;
|
||||
}
|
||||
x_25 = lean_ctor_get(x_22, 1);
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_22);
|
||||
x_26 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
if (lean_is_scalar(x_24)) {
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_27 = x_24;
|
||||
}
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
lean_ctor_set(x_27, 1, x_23);
|
||||
lean_dec(x_5);
|
||||
x_26 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_26);
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_6);
|
||||
lean_ctor_set(x_27, 1, x_25);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_5);
|
||||
if (x_28 == 0)
|
||||
lean_object* x_28; lean_object* x_29;
|
||||
x_28 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_6);
|
||||
x_29 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_28);
|
||||
if (lean_obj_tag(x_29) == 0)
|
||||
{
|
||||
return x_5;
|
||||
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33;
|
||||
lean_dec(x_29);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_31 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_31 = lean_box(0);
|
||||
}
|
||||
x_32 = lean_box(0);
|
||||
if (lean_is_scalar(x_31)) {
|
||||
x_33 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_33 = x_31;
|
||||
}
|
||||
lean_ctor_set(x_33, 0, x_32);
|
||||
lean_ctor_set(x_33, 1, x_30);
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
x_29 = lean_ctor_get(x_5, 0);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_5);
|
||||
x_31 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_34 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_34);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_35 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_35 = lean_box(0);
|
||||
}
|
||||
x_36 = lean_ctor_get(x_29, 0);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_29);
|
||||
x_37 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
if (lean_is_scalar(x_35)) {
|
||||
x_38 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_38 = x_35;
|
||||
}
|
||||
lean_ctor_set(x_38, 0, x_37);
|
||||
lean_ctor_set(x_38, 1, x_34);
|
||||
return x_38;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
428
stage0/stdlib/Lean/Elab/MacroRules.c
generated
428
stage0/stdlib/Lean/Elab/MacroRules.c
generated
File diff suppressed because it is too large
Load diff
157
stage0/stdlib/Lean/Elab/Match.c
generated
157
stage0/stdlib/Lean/Elab/Match.c
generated
|
|
@ -25882,11 +25882,8 @@ return x_7;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at___private_Lean_Elab_Match_0__Lean_Elab_Term_elabMatchAux___spec__1___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
lean_object* x_5; lean_object* x_6;
|
||||
x_5 = l_Lean_Elab_expandMacroImpl_x3f(x_1, x_2, x_3, x_4);
|
||||
if (lean_obj_tag(x_5) == 0)
|
||||
{
|
||||
lean_object* x_6;
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
|
|
@ -25921,89 +25918,131 @@ uint8_t x_13;
|
|||
x_13 = !lean_is_exclusive(x_6);
|
||||
if (x_13 == 0)
|
||||
{
|
||||
uint8_t x_14;
|
||||
x_14 = !lean_is_exclusive(x_5);
|
||||
if (x_14 == 0)
|
||||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_ctor_get(x_6, 0);
|
||||
x_15 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_14);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_ctor_get(x_6, 0);
|
||||
x_16 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
uint8_t x_16;
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_17);
|
||||
lean_free_object(x_6);
|
||||
x_16 = !lean_is_exclusive(x_5);
|
||||
if (x_16 == 0)
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18;
|
||||
x_17 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_17);
|
||||
x_18 = lean_box(0);
|
||||
lean_ctor_set(x_5, 0, x_18);
|
||||
return x_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_18 = lean_ctor_get(x_6, 0);
|
||||
lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_19 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_5);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
lean_ctor_set(x_6, 0, x_20);
|
||||
x_20 = lean_box(0);
|
||||
x_21 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_21, 0, x_6);
|
||||
lean_ctor_set(x_21, 0, x_20);
|
||||
lean_ctor_set(x_21, 1, x_19);
|
||||
return x_21;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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_22 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_6);
|
||||
x_23 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_23);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_24 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_24 = lean_box(0);
|
||||
uint8_t x_22;
|
||||
x_22 = !lean_is_exclusive(x_5);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_23);
|
||||
x_24 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_24);
|
||||
return x_5;
|
||||
}
|
||||
x_25 = lean_ctor_get(x_22, 1);
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_22);
|
||||
x_26 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
if (lean_is_scalar(x_24)) {
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_27 = x_24;
|
||||
}
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
lean_ctor_set(x_27, 1, x_23);
|
||||
lean_dec(x_5);
|
||||
x_26 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_26);
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_6);
|
||||
lean_ctor_set(x_27, 1, x_25);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_5);
|
||||
if (x_28 == 0)
|
||||
lean_object* x_28; lean_object* x_29;
|
||||
x_28 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_6);
|
||||
x_29 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_28);
|
||||
if (lean_obj_tag(x_29) == 0)
|
||||
{
|
||||
return x_5;
|
||||
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33;
|
||||
lean_dec(x_29);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_31 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_31 = lean_box(0);
|
||||
}
|
||||
x_32 = lean_box(0);
|
||||
if (lean_is_scalar(x_31)) {
|
||||
x_33 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_33 = x_31;
|
||||
}
|
||||
lean_ctor_set(x_33, 0, x_32);
|
||||
lean_ctor_set(x_33, 1, x_30);
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
x_29 = lean_ctor_get(x_5, 0);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_5);
|
||||
x_31 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_34 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_34);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_35 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_35 = lean_box(0);
|
||||
}
|
||||
x_36 = lean_ctor_get(x_29, 0);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_29);
|
||||
x_37 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
if (lean_is_scalar(x_35)) {
|
||||
x_38 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_38 = x_35;
|
||||
}
|
||||
lean_ctor_set(x_38, 0, x_37);
|
||||
lean_ctor_set(x_38, 1, x_34);
|
||||
return x_38;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
165
stage0/stdlib/Lean/Elab/MutualDef.c
generated
165
stage0/stdlib/Lean/Elab/MutualDef.c
generated
|
|
@ -251,6 +251,7 @@ static lean_object* l___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_MutualClos
|
|||
static lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_expandWhereDeclsAsStructInst___spec__2___lambda__2___closed__5;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_expandDeclId___at___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_elabHeaders___spec__1___lambda__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_object* l_Lean_throwError___at___private_Lean_Elab_Term_0__Lean_Elab_Term_applyAttributesCore___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_elabCommand___spec__10(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_MutualClosure_mkClosureForAux___closed__2;
|
||||
static lean_object* l_Lean_Elab_mkDeclName___at___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_elabHeaders___spec__2___lambda__1___closed__2;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_getFunName___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -484,6 +485,7 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Term_MutualClosure_main___boxed__const__1;
|
|||
uint8_t l_Lean_Elab_DefKind_isTheorem(uint8_t);
|
||||
static lean_object* l_Array_anyMUnsafe_any___at___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_isMultiConstant_x3f___spec__3___closed__6;
|
||||
static lean_object* l_Lean_Elab_elabAttr___at_Lean_Elab_Command_elabMutualDef___spec__4___closed__6;
|
||||
lean_object* l_Lean_throwErrorAt___at_Lean_Elab_Command_MkInstanceName_main___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_MetavarContext_getDelayedRoot(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_getMax_x3f___at___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_MutualClosure_pickMaxFVar_x3f___spec__1(lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Elab_expandDeclIdCore(lean_object*);
|
||||
|
|
@ -528,7 +530,6 @@ extern lean_object* l_Lean_Expr_FindImpl_initCache;
|
|||
uint8_t l_List_elem___at_Lean_NameHashSet_insert___spec__2(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_MutualClosure_mkLetRecClosureFor___lambda__1(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* l_Lean_Syntax_getPos_x3f(lean_object*, uint8_t);
|
||||
lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_MkInstanceName_main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_assignExprMVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_expandWhereDeclsAsStructInst___spec__2___closed__3;
|
||||
static lean_object* l___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_expandWhereDeclsAsStructInst___closed__5;
|
||||
|
|
@ -540,7 +541,6 @@ lean_object* l_List_redLength___rarg(lean_object*);
|
|||
lean_object* l_Std_PersistentArray_push___rarg(lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_getMVars(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_MutualClosure_mkClosureFor(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_throwErrorAt___at_Lean_Elab_Command_MkInstanceName_main___spec__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_check___lambda__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* lean_name_append_after(lean_object*, lean_object*);
|
||||
lean_object* l_Lean_LocalDecl_index(lean_object*);
|
||||
|
|
@ -25045,11 +25045,8 @@ return x_7;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Term_processDefDeriving___spec__1___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
lean_object* x_5; lean_object* x_6;
|
||||
x_5 = l_Lean_Elab_expandMacroImpl_x3f(x_1, x_2, x_3, x_4);
|
||||
if (lean_obj_tag(x_5) == 0)
|
||||
{
|
||||
lean_object* x_6;
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
|
|
@ -25084,89 +25081,131 @@ uint8_t x_13;
|
|||
x_13 = !lean_is_exclusive(x_6);
|
||||
if (x_13 == 0)
|
||||
{
|
||||
uint8_t x_14;
|
||||
x_14 = !lean_is_exclusive(x_5);
|
||||
if (x_14 == 0)
|
||||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_ctor_get(x_6, 0);
|
||||
x_15 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_14);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_ctor_get(x_6, 0);
|
||||
x_16 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
uint8_t x_16;
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_17);
|
||||
lean_free_object(x_6);
|
||||
x_16 = !lean_is_exclusive(x_5);
|
||||
if (x_16 == 0)
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18;
|
||||
x_17 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_17);
|
||||
x_18 = lean_box(0);
|
||||
lean_ctor_set(x_5, 0, x_18);
|
||||
return x_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_18 = lean_ctor_get(x_6, 0);
|
||||
lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_19 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_5);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
lean_ctor_set(x_6, 0, x_20);
|
||||
x_20 = lean_box(0);
|
||||
x_21 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_21, 0, x_6);
|
||||
lean_ctor_set(x_21, 0, x_20);
|
||||
lean_ctor_set(x_21, 1, x_19);
|
||||
return x_21;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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_22 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_6);
|
||||
x_23 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_23);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_24 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_24 = lean_box(0);
|
||||
uint8_t x_22;
|
||||
x_22 = !lean_is_exclusive(x_5);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_23);
|
||||
x_24 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_24);
|
||||
return x_5;
|
||||
}
|
||||
x_25 = lean_ctor_get(x_22, 1);
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_22);
|
||||
x_26 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
if (lean_is_scalar(x_24)) {
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_27 = x_24;
|
||||
}
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
lean_ctor_set(x_27, 1, x_23);
|
||||
lean_dec(x_5);
|
||||
x_26 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_26);
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_6);
|
||||
lean_ctor_set(x_27, 1, x_25);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_5);
|
||||
if (x_28 == 0)
|
||||
lean_object* x_28; lean_object* x_29;
|
||||
x_28 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_6);
|
||||
x_29 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_28);
|
||||
if (lean_obj_tag(x_29) == 0)
|
||||
{
|
||||
return x_5;
|
||||
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33;
|
||||
lean_dec(x_29);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_31 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_31 = lean_box(0);
|
||||
}
|
||||
x_32 = lean_box(0);
|
||||
if (lean_is_scalar(x_31)) {
|
||||
x_33 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_33 = x_31;
|
||||
}
|
||||
lean_ctor_set(x_33, 0, x_32);
|
||||
lean_ctor_set(x_33, 1, x_30);
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
x_29 = lean_ctor_get(x_5, 0);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_5);
|
||||
x_31 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_34 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_34);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_35 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_35 = lean_box(0);
|
||||
}
|
||||
x_36 = lean_ctor_get(x_29, 0);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_29);
|
||||
x_37 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
if (lean_is_scalar(x_35)) {
|
||||
x_38 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_38 = x_35;
|
||||
}
|
||||
lean_ctor_set(x_38, 0, x_37);
|
||||
lean_ctor_set(x_38, 1, x_34);
|
||||
return x_38;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -29179,7 +29218,7 @@ x_13 = lean_alloc_closure((void*)(l_Lean_expandMacros), 3, 1);
|
|||
lean_closure_set(x_13, 0, x_12);
|
||||
lean_inc(x_3);
|
||||
lean_inc(x_2);
|
||||
x_14 = l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_MkInstanceName_main___spec__1(x_13, x_2, x_3, x_10);
|
||||
x_14 = l_Lean_Elab_liftMacroM___at_Lean_Elab_Command_elabCommand___spec__10(x_13, x_2, x_3, x_10);
|
||||
if (lean_obj_tag(x_14) == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19;
|
||||
|
|
@ -29213,7 +29252,7 @@ lean_object* x_25; lean_object* x_26; uint8_t x_27;
|
|||
lean_dec(x_17);
|
||||
lean_dec(x_9);
|
||||
x_25 = l_Lean_Elab_elabAttr___at_Lean_Elab_Command_elabMutualDef___spec__4___closed__6;
|
||||
x_26 = l_Lean_throwErrorAt___at_Lean_Elab_Command_MkInstanceName_main___spec__6(x_15, x_25, x_2, x_3, x_16);
|
||||
x_26 = l_Lean_throwErrorAt___at_Lean_Elab_Command_MkInstanceName_main___spec__2(x_15, x_25, x_2, x_3, x_16);
|
||||
x_27 = !lean_is_exclusive(x_26);
|
||||
if (x_27 == 0)
|
||||
{
|
||||
|
|
|
|||
1
stage0/stdlib/Lean/Elab/Notation.c
generated
1
stage0/stdlib/Lean/Elab/Notation.c
generated
|
|
@ -753,7 +753,6 @@ lean_dec(x_3);
|
|||
x_9 = lean_array_fget(x_1, x_8);
|
||||
lean_inc(x_2);
|
||||
x_10 = l_Lean_Syntax_structEq(x_2, x_9);
|
||||
lean_dec(x_9);
|
||||
if (x_10 == 0)
|
||||
{
|
||||
x_3 = x_8;
|
||||
|
|
|
|||
157
stage0/stdlib/Lean/Elab/PatternVar.c
generated
157
stage0/stdlib/Lean/Elab/PatternVar.c
generated
|
|
@ -9540,11 +9540,8 @@ return x_7;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Term_getPatternVars___spec__1___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
lean_object* x_5; lean_object* x_6;
|
||||
x_5 = l_Lean_Elab_expandMacroImpl_x3f(x_1, x_2, x_3, x_4);
|
||||
if (lean_obj_tag(x_5) == 0)
|
||||
{
|
||||
lean_object* x_6;
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
|
|
@ -9579,89 +9576,131 @@ uint8_t x_13;
|
|||
x_13 = !lean_is_exclusive(x_6);
|
||||
if (x_13 == 0)
|
||||
{
|
||||
uint8_t x_14;
|
||||
x_14 = !lean_is_exclusive(x_5);
|
||||
if (x_14 == 0)
|
||||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_ctor_get(x_6, 0);
|
||||
x_15 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_14);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_ctor_get(x_6, 0);
|
||||
x_16 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
uint8_t x_16;
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_17);
|
||||
lean_free_object(x_6);
|
||||
x_16 = !lean_is_exclusive(x_5);
|
||||
if (x_16 == 0)
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18;
|
||||
x_17 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_17);
|
||||
x_18 = lean_box(0);
|
||||
lean_ctor_set(x_5, 0, x_18);
|
||||
return x_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_18 = lean_ctor_get(x_6, 0);
|
||||
lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_19 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_5);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
lean_ctor_set(x_6, 0, x_20);
|
||||
x_20 = lean_box(0);
|
||||
x_21 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_21, 0, x_6);
|
||||
lean_ctor_set(x_21, 0, x_20);
|
||||
lean_ctor_set(x_21, 1, x_19);
|
||||
return x_21;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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_22 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_6);
|
||||
x_23 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_23);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_24 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_24 = lean_box(0);
|
||||
uint8_t x_22;
|
||||
x_22 = !lean_is_exclusive(x_5);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_23);
|
||||
x_24 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_24);
|
||||
return x_5;
|
||||
}
|
||||
x_25 = lean_ctor_get(x_22, 1);
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_22);
|
||||
x_26 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
if (lean_is_scalar(x_24)) {
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_27 = x_24;
|
||||
}
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
lean_ctor_set(x_27, 1, x_23);
|
||||
lean_dec(x_5);
|
||||
x_26 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_26);
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_6);
|
||||
lean_ctor_set(x_27, 1, x_25);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_5);
|
||||
if (x_28 == 0)
|
||||
lean_object* x_28; lean_object* x_29;
|
||||
x_28 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_6);
|
||||
x_29 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_28);
|
||||
if (lean_obj_tag(x_29) == 0)
|
||||
{
|
||||
return x_5;
|
||||
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33;
|
||||
lean_dec(x_29);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_31 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_31 = lean_box(0);
|
||||
}
|
||||
x_32 = lean_box(0);
|
||||
if (lean_is_scalar(x_31)) {
|
||||
x_33 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_33 = x_31;
|
||||
}
|
||||
lean_ctor_set(x_33, 0, x_32);
|
||||
lean_ctor_set(x_33, 1, x_30);
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
x_29 = lean_ctor_get(x_5, 0);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_5);
|
||||
x_31 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_34 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_34);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_35 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_35 = lean_box(0);
|
||||
}
|
||||
x_36 = lean_ctor_get(x_29, 0);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_29);
|
||||
x_37 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
if (lean_is_scalar(x_35)) {
|
||||
x_38 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_38 = x_35;
|
||||
}
|
||||
lean_ctor_set(x_38, 0, x_37);
|
||||
lean_ctor_set(x_38, 1, x_34);
|
||||
return x_38;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
157
stage0/stdlib/Lean/Elab/PreDefinition/Main.c
generated
157
stage0/stdlib/Lean/Elab/PreDefinition/Main.c
generated
|
|
@ -3832,11 +3832,8 @@ return x_7;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_addPreDefinitions___spec__5___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
lean_object* x_5; lean_object* x_6;
|
||||
x_5 = l_Lean_Elab_expandMacroImpl_x3f(x_1, x_2, x_3, x_4);
|
||||
if (lean_obj_tag(x_5) == 0)
|
||||
{
|
||||
lean_object* x_6;
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
|
|
@ -3871,89 +3868,131 @@ uint8_t x_13;
|
|||
x_13 = !lean_is_exclusive(x_6);
|
||||
if (x_13 == 0)
|
||||
{
|
||||
uint8_t x_14;
|
||||
x_14 = !lean_is_exclusive(x_5);
|
||||
if (x_14 == 0)
|
||||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_ctor_get(x_6, 0);
|
||||
x_15 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_14);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_ctor_get(x_6, 0);
|
||||
x_16 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
uint8_t x_16;
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_17);
|
||||
lean_free_object(x_6);
|
||||
x_16 = !lean_is_exclusive(x_5);
|
||||
if (x_16 == 0)
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18;
|
||||
x_17 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_17);
|
||||
x_18 = lean_box(0);
|
||||
lean_ctor_set(x_5, 0, x_18);
|
||||
return x_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_18 = lean_ctor_get(x_6, 0);
|
||||
lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_19 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_5);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
lean_ctor_set(x_6, 0, x_20);
|
||||
x_20 = lean_box(0);
|
||||
x_21 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_21, 0, x_6);
|
||||
lean_ctor_set(x_21, 0, x_20);
|
||||
lean_ctor_set(x_21, 1, x_19);
|
||||
return x_21;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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_22 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_6);
|
||||
x_23 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_23);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_24 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_24 = lean_box(0);
|
||||
uint8_t x_22;
|
||||
x_22 = !lean_is_exclusive(x_5);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_23);
|
||||
x_24 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_24);
|
||||
return x_5;
|
||||
}
|
||||
x_25 = lean_ctor_get(x_22, 1);
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_22);
|
||||
x_26 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
if (lean_is_scalar(x_24)) {
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_27 = x_24;
|
||||
}
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
lean_ctor_set(x_27, 1, x_23);
|
||||
lean_dec(x_5);
|
||||
x_26 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_26);
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_6);
|
||||
lean_ctor_set(x_27, 1, x_25);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_5);
|
||||
if (x_28 == 0)
|
||||
lean_object* x_28; lean_object* x_29;
|
||||
x_28 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_6);
|
||||
x_29 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_28);
|
||||
if (lean_obj_tag(x_29) == 0)
|
||||
{
|
||||
return x_5;
|
||||
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33;
|
||||
lean_dec(x_29);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_31 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_31 = lean_box(0);
|
||||
}
|
||||
x_32 = lean_box(0);
|
||||
if (lean_is_scalar(x_31)) {
|
||||
x_33 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_33 = x_31;
|
||||
}
|
||||
lean_ctor_set(x_33, 0, x_32);
|
||||
lean_ctor_set(x_33, 1, x_30);
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
x_29 = lean_ctor_get(x_5, 0);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_5);
|
||||
x_31 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_34 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_34);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_35 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_35 = lean_box(0);
|
||||
}
|
||||
x_36 = lean_ctor_get(x_29, 0);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_29);
|
||||
x_37 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
if (lean_is_scalar(x_35)) {
|
||||
x_38 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_38 = x_35;
|
||||
}
|
||||
lean_ctor_set(x_38, 0, x_37);
|
||||
lean_ctor_set(x_38, 1, x_34);
|
||||
return x_38;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
26
stage0/stdlib/Lean/Elab/Quotation.c
generated
26
stage0/stdlib/Lean/Elab/Quotation.c
generated
|
|
@ -988,7 +988,6 @@ LEAN_EXPORT lean_object* l___private_Lean_Elab_Quotation_0__Lean_Elab_Term_Quota
|
|||
static lean_object* l_Lean_Elab_Term_Quotation___aux__Lean__Elab__Quotation______macroRules__Lean__Elab__Term__Quotation__commandElab__stx__quot______1___closed__1;
|
||||
static lean_object* l___private_Lean_Elab_Quotation_0__Lean_Elab_Term_Quotation_getHeadInfo___lambda__11___closed__15;
|
||||
static lean_object* l___private_Lean_Elab_Quotation_0__Lean_Elab_Term_Quotation_compileStxMatch___lambda__3___closed__9;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Quotation_0__Lean_Elab_Term_Quotation_getHeadInfo___lambda__14___boxed(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Term_Quotation___aux__Lean__Elab__Quotation______macroRules__Lean__Elab__Term__Quotation__commandElab__stx__quot______1___closed__44;
|
||||
LEAN_EXPORT lean_object* l_List_mapM___at___private_Lean_Elab_Quotation_0__Lean_Elab_Term_Quotation_getHeadInfo___spec__6___boxed(lean_object**);
|
||||
static lean_object* l___private_Lean_Elab_Quotation_0__Lean_Elab_Term_Quotation_getHeadInfo___lambda__6___closed__1;
|
||||
|
|
@ -16701,11 +16700,16 @@ case 1:
|
|||
lean_object* x_6; lean_object* x_7; uint8_t x_8;
|
||||
lean_dec(x_4);
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
x_7 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_7);
|
||||
lean_dec(x_5);
|
||||
x_8 = lean_name_eq(x_6, x_1);
|
||||
lean_dec(x_6);
|
||||
if (x_8 == 0)
|
||||
{
|
||||
lean_object* x_9;
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_2);
|
||||
x_9 = lean_box(1);
|
||||
return x_9;
|
||||
|
|
@ -16718,6 +16722,7 @@ x_11 = lean_alloc_ctor(1, 1, 0);
|
|||
lean_ctor_set(x_11, 0, x_10);
|
||||
x_12 = l___private_Init_Data_Option_Basic_0__beqOption____x40_Init_Data_Option_Basic___hyg_734____at___private_Lean_Meta_Basic_0__Lean_Meta_beqInfoCacheKey____x40_Lean_Meta_Basic___hyg_314____spec__1(x_7, x_11);
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_7);
|
||||
if (x_12 == 0)
|
||||
{
|
||||
lean_object* x_13;
|
||||
|
|
@ -16744,6 +16749,7 @@ lean_dec(x_2);
|
|||
if (x_3 == 0)
|
||||
{
|
||||
lean_object* x_17;
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
x_17 = lean_box(1);
|
||||
return x_17;
|
||||
|
|
@ -16752,6 +16758,8 @@ else
|
|||
{
|
||||
lean_object* x_18; uint8_t x_19;
|
||||
x_18 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_18);
|
||||
lean_dec(x_5);
|
||||
x_19 = l_Lean_Syntax_structEq(x_4, x_18);
|
||||
if (x_19 == 0)
|
||||
{
|
||||
|
|
@ -16770,6 +16778,7 @@ return x_21;
|
|||
default:
|
||||
{
|
||||
lean_object* x_22;
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
x_22 = lean_box(1);
|
||||
|
|
@ -18970,6 +18979,7 @@ else
|
|||
{
|
||||
lean_object* x_7;
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_7 = lean_box(2);
|
||||
return x_7;
|
||||
}
|
||||
|
|
@ -24947,7 +24957,7 @@ lean_dec(x_73);
|
|||
lean_inc(x_12);
|
||||
x_124 = lean_alloc_ctor(3, 1, 0);
|
||||
lean_ctor_set(x_124, 0, x_12);
|
||||
x_125 = lean_alloc_closure((void*)(l___private_Lean_Elab_Quotation_0__Lean_Elab_Term_Quotation_getHeadInfo___lambda__14___boxed), 2, 1);
|
||||
x_125 = lean_alloc_closure((void*)(l___private_Lean_Elab_Quotation_0__Lean_Elab_Term_Quotation_getHeadInfo___lambda__14), 2, 1);
|
||||
lean_closure_set(x_125, 0, x_12);
|
||||
x_126 = lean_alloc_closure((void*)(l___private_Lean_Elab_Quotation_0__Lean_Elab_Term_Quotation_getHeadInfo___lambda__22), 10, 1);
|
||||
lean_closure_set(x_126, 0, x_120);
|
||||
|
|
@ -25599,7 +25609,7 @@ lean_dec(x_242);
|
|||
lean_inc(x_190);
|
||||
x_293 = lean_alloc_ctor(3, 1, 0);
|
||||
lean_ctor_set(x_293, 0, x_190);
|
||||
x_294 = lean_alloc_closure((void*)(l___private_Lean_Elab_Quotation_0__Lean_Elab_Term_Quotation_getHeadInfo___lambda__14___boxed), 2, 1);
|
||||
x_294 = lean_alloc_closure((void*)(l___private_Lean_Elab_Quotation_0__Lean_Elab_Term_Quotation_getHeadInfo___lambda__14), 2, 1);
|
||||
lean_closure_set(x_294, 0, x_190);
|
||||
x_295 = lean_alloc_closure((void*)(l___private_Lean_Elab_Quotation_0__Lean_Elab_Term_Quotation_getHeadInfo___lambda__22), 10, 1);
|
||||
lean_closure_set(x_295, 0, x_289);
|
||||
|
|
@ -26171,7 +26181,6 @@ uint8_t x_6; lean_object* x_7;
|
|||
x_6 = lean_unbox(x_3);
|
||||
lean_dec(x_3);
|
||||
x_7 = l___private_Lean_Elab_Quotation_0__Lean_Elab_Term_Quotation_getHeadInfo___lambda__9(x_1, x_2, x_6, x_4, x_5);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_1);
|
||||
return x_7;
|
||||
}
|
||||
|
|
@ -26207,15 +26216,6 @@ lean_dec(x_1);
|
|||
return x_7;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Quotation_0__Lean_Elab_Term_Quotation_getHeadInfo___lambda__14___boxed(lean_object* x_1, lean_object* x_2) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_3;
|
||||
x_3 = l___private_Lean_Elab_Quotation_0__Lean_Elab_Term_Quotation_getHeadInfo___lambda__14(x_1, x_2);
|
||||
lean_dec(x_1);
|
||||
return x_3;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Quotation_0__Lean_Elab_Term_Quotation_getHeadInfo___lambda__15___boxed(lean_object** _args) {
|
||||
lean_object* x_1 = _args[0];
|
||||
lean_object* x_2 = _args[1];
|
||||
|
|
|
|||
157
stage0/stdlib/Lean/Elab/Quotation/Precheck.c
generated
157
stage0/stdlib/Lean/Elab/Quotation/Precheck.c
generated
|
|
@ -1723,11 +1723,8 @@ return x_8;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Term_Quotation_precheck___spec__1___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
lean_object* x_5; lean_object* x_6;
|
||||
x_5 = l_Lean_Elab_expandMacroImpl_x3f(x_1, x_2, x_3, x_4);
|
||||
if (lean_obj_tag(x_5) == 0)
|
||||
{
|
||||
lean_object* x_6;
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
|
|
@ -1762,89 +1759,131 @@ uint8_t x_13;
|
|||
x_13 = !lean_is_exclusive(x_6);
|
||||
if (x_13 == 0)
|
||||
{
|
||||
uint8_t x_14;
|
||||
x_14 = !lean_is_exclusive(x_5);
|
||||
if (x_14 == 0)
|
||||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_ctor_get(x_6, 0);
|
||||
x_15 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_14);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_ctor_get(x_6, 0);
|
||||
x_16 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
uint8_t x_16;
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_17);
|
||||
lean_free_object(x_6);
|
||||
x_16 = !lean_is_exclusive(x_5);
|
||||
if (x_16 == 0)
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18;
|
||||
x_17 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_17);
|
||||
x_18 = lean_box(0);
|
||||
lean_ctor_set(x_5, 0, x_18);
|
||||
return x_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_18 = lean_ctor_get(x_6, 0);
|
||||
lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_19 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_5);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
lean_ctor_set(x_6, 0, x_20);
|
||||
x_20 = lean_box(0);
|
||||
x_21 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_21, 0, x_6);
|
||||
lean_ctor_set(x_21, 0, x_20);
|
||||
lean_ctor_set(x_21, 1, x_19);
|
||||
return x_21;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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_22 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_6);
|
||||
x_23 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_23);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_24 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_24 = lean_box(0);
|
||||
uint8_t x_22;
|
||||
x_22 = !lean_is_exclusive(x_5);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_23);
|
||||
x_24 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_24);
|
||||
return x_5;
|
||||
}
|
||||
x_25 = lean_ctor_get(x_22, 1);
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_22);
|
||||
x_26 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
if (lean_is_scalar(x_24)) {
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_27 = x_24;
|
||||
}
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
lean_ctor_set(x_27, 1, x_23);
|
||||
lean_dec(x_5);
|
||||
x_26 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_26);
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_6);
|
||||
lean_ctor_set(x_27, 1, x_25);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_5);
|
||||
if (x_28 == 0)
|
||||
lean_object* x_28; lean_object* x_29;
|
||||
x_28 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_6);
|
||||
x_29 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_28);
|
||||
if (lean_obj_tag(x_29) == 0)
|
||||
{
|
||||
return x_5;
|
||||
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33;
|
||||
lean_dec(x_29);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_31 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_31 = lean_box(0);
|
||||
}
|
||||
x_32 = lean_box(0);
|
||||
if (lean_is_scalar(x_31)) {
|
||||
x_33 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_33 = x_31;
|
||||
}
|
||||
lean_ctor_set(x_33, 0, x_32);
|
||||
lean_ctor_set(x_33, 1, x_30);
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
x_29 = lean_ctor_get(x_5, 0);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_5);
|
||||
x_31 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_34 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_34);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_35 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_35 = lean_box(0);
|
||||
}
|
||||
x_36 = lean_ctor_get(x_29, 0);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_29);
|
||||
x_37 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
if (lean_is_scalar(x_35)) {
|
||||
x_38 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_38 = x_35;
|
||||
}
|
||||
lean_ctor_set(x_38, 0, x_37);
|
||||
lean_ctor_set(x_38, 1, x_34);
|
||||
return x_38;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
338
stage0/stdlib/Lean/Elab/StructInst.c
generated
338
stage0/stdlib/Lean/Elab/StructInst.c
generated
|
|
@ -120,7 +120,7 @@ LEAN_EXPORT lean_object* l_List_mapTRAux___at___private_Lean_Elab_StructInst_0__
|
|||
static lean_object* l___private_Lean_Elab_StructInst_0__Lean_Elab_Term_StructInst_getStructName___rarg___closed__5;
|
||||
lean_object* l_Lean_addTrace_addTraceOptions(lean_object*);
|
||||
static lean_object* l_Lean_Elab_Term_StructInst_DefaultFields_mkDefaultValueAux_x3f___closed__1;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_StructInst_initFn____x40_Lean_Elab_StructInst___hyg_9242_(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_StructInst_initFn____x40_Lean_Elab_StructInst___hyg_9246_(lean_object*);
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Term_StructInst_expandStructInstExpectedType___closed__2;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_StructInst_DefaultFields_mkDefaultValueAux_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l___private_Init_Meta_0__Lean_Syntax_isNatLitAux(lean_object*, lean_object*);
|
||||
|
|
@ -553,6 +553,7 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Term_StructInst_DefaultFields_getFieldName(
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_StructInst_Struct_ref___boxed(lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_StructInst_0__Lean_Elab_Term_StructInst_expandNonAtomicExplicitSources_go___lambda__1___closed__4;
|
||||
static lean_object* l_Lean_Elab_Term_StructInst_DefaultFields_findDefaultMissing_x3f___lambda__1___closed__1;
|
||||
lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(lean_object*, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Std_AssocList_find_x3f___at___private_Lean_Elab_StructInst_0__Lean_Elab_Term_StructInst_mkFieldMap___spec__3___boxed(lean_object*, lean_object*);
|
||||
static lean_object* l_List_foldlM___at___private_Lean_Elab_StructInst_0__Lean_Elab_Term_StructInst_elabStruct___spec__3___closed__1;
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Elab_Term_StructInst_formatStruct___spec__2(size_t, size_t, lean_object*);
|
||||
|
|
@ -22404,11 +22405,8 @@ return x_7;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at___private_Lean_Elab_StructInst_0__Lean_Elab_Term_StructInst_elabStructInstAux___spec__1___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
lean_object* x_5; lean_object* x_6;
|
||||
x_5 = l_Lean_Elab_expandMacroImpl_x3f(x_1, x_2, x_3, x_4);
|
||||
if (lean_obj_tag(x_5) == 0)
|
||||
{
|
||||
lean_object* x_6;
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
|
|
@ -22443,89 +22441,131 @@ uint8_t x_13;
|
|||
x_13 = !lean_is_exclusive(x_6);
|
||||
if (x_13 == 0)
|
||||
{
|
||||
uint8_t x_14;
|
||||
x_14 = !lean_is_exclusive(x_5);
|
||||
if (x_14 == 0)
|
||||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_ctor_get(x_6, 0);
|
||||
x_15 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_14);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_ctor_get(x_6, 0);
|
||||
x_16 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
uint8_t x_16;
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_17);
|
||||
lean_free_object(x_6);
|
||||
x_16 = !lean_is_exclusive(x_5);
|
||||
if (x_16 == 0)
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18;
|
||||
x_17 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_17);
|
||||
x_18 = lean_box(0);
|
||||
lean_ctor_set(x_5, 0, x_18);
|
||||
return x_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_18 = lean_ctor_get(x_6, 0);
|
||||
lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_19 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_5);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
lean_ctor_set(x_6, 0, x_20);
|
||||
x_20 = lean_box(0);
|
||||
x_21 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_21, 0, x_6);
|
||||
lean_ctor_set(x_21, 0, x_20);
|
||||
lean_ctor_set(x_21, 1, x_19);
|
||||
return x_21;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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_22 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_6);
|
||||
x_23 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_23);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_24 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_24 = lean_box(0);
|
||||
uint8_t x_22;
|
||||
x_22 = !lean_is_exclusive(x_5);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_23);
|
||||
x_24 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_24);
|
||||
return x_5;
|
||||
}
|
||||
x_25 = lean_ctor_get(x_22, 1);
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_22);
|
||||
x_26 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
if (lean_is_scalar(x_24)) {
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_27 = x_24;
|
||||
}
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
lean_ctor_set(x_27, 1, x_23);
|
||||
lean_dec(x_5);
|
||||
x_26 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_26);
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_6);
|
||||
lean_ctor_set(x_27, 1, x_25);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_5);
|
||||
if (x_28 == 0)
|
||||
lean_object* x_28; lean_object* x_29;
|
||||
x_28 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_6);
|
||||
x_29 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_28);
|
||||
if (lean_obj_tag(x_29) == 0)
|
||||
{
|
||||
return x_5;
|
||||
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33;
|
||||
lean_dec(x_29);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_31 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_31 = lean_box(0);
|
||||
}
|
||||
x_32 = lean_box(0);
|
||||
if (lean_is_scalar(x_31)) {
|
||||
x_33 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_33 = x_31;
|
||||
}
|
||||
lean_ctor_set(x_33, 0, x_32);
|
||||
lean_ctor_set(x_33, 1, x_30);
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
x_29 = lean_ctor_get(x_5, 0);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_5);
|
||||
x_31 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_34 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_34);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_35 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_35 = lean_box(0);
|
||||
}
|
||||
x_36 = lean_ctor_get(x_29, 0);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_29);
|
||||
x_37 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
if (lean_is_scalar(x_35)) {
|
||||
x_38 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_38 = x_35;
|
||||
}
|
||||
lean_ctor_set(x_38, 0, x_37);
|
||||
lean_ctor_set(x_38, 1, x_34);
|
||||
return x_38;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -22862,105 +22902,109 @@ return x_2;
|
|||
LEAN_EXPORT lean_object* l___private_Lean_Elab_StructInst_0__Lean_Elab_Term_StructInst_elabStructInstAux___lambda__2(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:
|
||||
{
|
||||
lean_object* x_12;
|
||||
lean_object* x_12; uint8_t x_13; lean_object* x_14;
|
||||
lean_dec(x_4);
|
||||
x_12 = lean_alloc_closure((void*)(l___private_Lean_Elab_StructInst_0__Lean_Elab_Term_StructInst_elabStruct), 9, 2);
|
||||
lean_closure_set(x_12, 0, x_1);
|
||||
lean_closure_set(x_12, 1, x_2);
|
||||
x_13 = 1;
|
||||
lean_inc(x_10);
|
||||
lean_inc(x_9);
|
||||
lean_inc(x_8);
|
||||
lean_inc(x_7);
|
||||
lean_inc(x_6);
|
||||
lean_inc(x_5);
|
||||
x_12 = l___private_Lean_Elab_StructInst_0__Lean_Elab_Term_StructInst_elabStruct(x_1, x_2, x_5, x_6, x_7, x_8, x_9, x_10, x_11);
|
||||
if (lean_obj_tag(x_12) == 0)
|
||||
x_14 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(x_12, x_13, x_13, x_5, x_6, x_7, x_8, x_9, x_10, x_11);
|
||||
if (lean_obj_tag(x_14) == 0)
|
||||
{
|
||||
lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; lean_object* x_18; lean_object* x_31; lean_object* x_32; lean_object* x_33; uint8_t x_34;
|
||||
x_13 = lean_ctor_get(x_12, 0);
|
||||
lean_inc(x_13);
|
||||
x_14 = lean_ctor_get(x_12, 1);
|
||||
lean_inc(x_14);
|
||||
lean_dec(x_12);
|
||||
x_15 = lean_ctor_get(x_13, 0);
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; lean_object* x_33; lean_object* x_34; lean_object* x_35; uint8_t x_36;
|
||||
x_15 = lean_ctor_get(x_14, 0);
|
||||
lean_inc(x_15);
|
||||
x_16 = lean_ctor_get(x_13, 1);
|
||||
x_16 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_16);
|
||||
lean_dec(x_13);
|
||||
x_31 = lean_st_ref_get(x_10, x_14);
|
||||
x_32 = lean_ctor_get(x_31, 0);
|
||||
lean_inc(x_32);
|
||||
x_33 = lean_ctor_get(x_32, 3);
|
||||
lean_inc(x_33);
|
||||
lean_dec(x_32);
|
||||
x_34 = lean_ctor_get_uint8(x_33, sizeof(void*)*1);
|
||||
lean_dec(x_33);
|
||||
if (x_34 == 0)
|
||||
{
|
||||
lean_object* x_35; uint8_t x_36;
|
||||
x_35 = lean_ctor_get(x_31, 1);
|
||||
lean_dec(x_14);
|
||||
x_17 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_17);
|
||||
x_18 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_18);
|
||||
lean_dec(x_15);
|
||||
x_33 = lean_st_ref_get(x_10, x_16);
|
||||
x_34 = lean_ctor_get(x_33, 0);
|
||||
lean_inc(x_34);
|
||||
x_35 = lean_ctor_get(x_34, 3);
|
||||
lean_inc(x_35);
|
||||
lean_dec(x_31);
|
||||
x_36 = 0;
|
||||
x_17 = x_36;
|
||||
x_18 = x_35;
|
||||
goto block_30;
|
||||
}
|
||||
else
|
||||
lean_dec(x_34);
|
||||
x_36 = lean_ctor_get_uint8(x_35, sizeof(void*)*1);
|
||||
lean_dec(x_35);
|
||||
if (x_36 == 0)
|
||||
{
|
||||
lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41;
|
||||
x_37 = lean_ctor_get(x_31, 1);
|
||||
lean_object* x_37; uint8_t x_38;
|
||||
x_37 = lean_ctor_get(x_33, 1);
|
||||
lean_inc(x_37);
|
||||
lean_dec(x_31);
|
||||
lean_inc(x_3);
|
||||
x_38 = l___private_Lean_Util_Trace_0__Lean_checkTraceOptionM___at___private_Lean_Elab_Term_0__Lean_Elab_Term_postponeElabTerm___spec__2(x_3, x_5, x_6, x_7, x_8, x_9, x_10, x_37);
|
||||
x_39 = lean_ctor_get(x_38, 0);
|
||||
lean_dec(x_33);
|
||||
x_38 = 0;
|
||||
x_19 = x_38;
|
||||
x_20 = x_37;
|
||||
goto block_32;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; uint8_t x_43;
|
||||
x_39 = lean_ctor_get(x_33, 1);
|
||||
lean_inc(x_39);
|
||||
x_40 = lean_ctor_get(x_38, 1);
|
||||
lean_inc(x_40);
|
||||
lean_dec(x_38);
|
||||
x_41 = lean_unbox(x_39);
|
||||
lean_dec(x_39);
|
||||
x_17 = x_41;
|
||||
x_18 = x_40;
|
||||
goto block_30;
|
||||
lean_dec(x_33);
|
||||
lean_inc(x_3);
|
||||
x_40 = l___private_Lean_Util_Trace_0__Lean_checkTraceOptionM___at___private_Lean_Elab_Term_0__Lean_Elab_Term_postponeElabTerm___spec__2(x_3, x_5, x_6, x_7, x_8, x_9, x_10, x_39);
|
||||
x_41 = lean_ctor_get(x_40, 0);
|
||||
lean_inc(x_41);
|
||||
x_42 = lean_ctor_get(x_40, 1);
|
||||
lean_inc(x_42);
|
||||
lean_dec(x_40);
|
||||
x_43 = lean_unbox(x_41);
|
||||
lean_dec(x_41);
|
||||
x_19 = x_43;
|
||||
x_20 = x_42;
|
||||
goto block_32;
|
||||
}
|
||||
block_30:
|
||||
block_32:
|
||||
{
|
||||
if (x_17 == 0)
|
||||
if (x_19 == 0)
|
||||
{
|
||||
lean_object* x_19; lean_object* x_20;
|
||||
lean_object* x_21; lean_object* x_22;
|
||||
lean_dec(x_3);
|
||||
x_19 = lean_box(0);
|
||||
x_20 = l___private_Lean_Elab_StructInst_0__Lean_Elab_Term_StructInst_elabStructInstAux___lambda__1(x_16, x_15, x_19, x_5, x_6, x_7, x_8, x_9, x_10, x_18);
|
||||
return x_20;
|
||||
x_21 = lean_box(0);
|
||||
x_22 = l___private_Lean_Elab_StructInst_0__Lean_Elab_Term_StructInst_elabStructInstAux___lambda__1(x_18, x_17, x_21, x_5, x_6, x_7, x_8, x_9, x_10, x_20);
|
||||
return x_22;
|
||||
}
|
||||
else
|
||||
{
|
||||
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_29;
|
||||
lean_inc(x_15);
|
||||
x_21 = lean_alloc_ctor(2, 1, 0);
|
||||
lean_ctor_set(x_21, 0, x_15);
|
||||
x_22 = l___private_Lean_Elab_StructInst_0__Lean_Elab_Term_StructInst_elabStructInstAux___lambda__2___closed__2;
|
||||
x_23 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_23, 0, x_22);
|
||||
lean_ctor_set(x_23, 1, x_21);
|
||||
x_24 = l___private_Lean_Elab_StructInst_0__Lean_Elab_Term_StructInst_elabModifyOp___lambda__2___closed__17;
|
||||
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_29; lean_object* x_30; lean_object* x_31;
|
||||
lean_inc(x_17);
|
||||
x_23 = lean_alloc_ctor(2, 1, 0);
|
||||
lean_ctor_set(x_23, 0, x_17);
|
||||
x_24 = l___private_Lean_Elab_StructInst_0__Lean_Elab_Term_StructInst_elabStructInstAux___lambda__2___closed__2;
|
||||
x_25 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_25, 0, x_23);
|
||||
lean_ctor_set(x_25, 1, x_24);
|
||||
x_26 = l_Lean_addTrace___at___private_Lean_Elab_Term_0__Lean_Elab_Term_postponeElabTerm___spec__1(x_3, x_25, x_5, x_6, x_7, x_8, x_9, x_10, x_18);
|
||||
x_27 = lean_ctor_get(x_26, 0);
|
||||
lean_inc(x_27);
|
||||
x_28 = lean_ctor_get(x_26, 1);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_26);
|
||||
x_29 = l___private_Lean_Elab_StructInst_0__Lean_Elab_Term_StructInst_elabStructInstAux___lambda__1(x_16, x_15, x_27, x_5, x_6, x_7, x_8, x_9, x_10, x_28);
|
||||
lean_dec(x_27);
|
||||
return x_29;
|
||||
lean_ctor_set(x_25, 0, x_24);
|
||||
lean_ctor_set(x_25, 1, x_23);
|
||||
x_26 = l___private_Lean_Elab_StructInst_0__Lean_Elab_Term_StructInst_elabModifyOp___lambda__2___closed__17;
|
||||
x_27 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_25);
|
||||
lean_ctor_set(x_27, 1, x_26);
|
||||
x_28 = l_Lean_addTrace___at___private_Lean_Elab_Term_0__Lean_Elab_Term_postponeElabTerm___spec__1(x_3, x_27, x_5, x_6, x_7, x_8, x_9, x_10, x_20);
|
||||
x_29 = lean_ctor_get(x_28, 0);
|
||||
lean_inc(x_29);
|
||||
x_30 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_30);
|
||||
lean_dec(x_28);
|
||||
x_31 = l___private_Lean_Elab_StructInst_0__Lean_Elab_Term_StructInst_elabStructInstAux___lambda__1(x_18, x_17, x_29, x_5, x_6, x_7, x_8, x_9, x_10, x_30);
|
||||
lean_dec(x_29);
|
||||
return x_31;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_42;
|
||||
uint8_t x_44;
|
||||
lean_dec(x_10);
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_8);
|
||||
|
|
@ -22968,23 +23012,23 @@ lean_dec(x_7);
|
|||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_3);
|
||||
x_42 = !lean_is_exclusive(x_12);
|
||||
if (x_42 == 0)
|
||||
x_44 = !lean_is_exclusive(x_14);
|
||||
if (x_44 == 0)
|
||||
{
|
||||
return x_12;
|
||||
return x_14;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_43; lean_object* x_44; lean_object* x_45;
|
||||
x_43 = lean_ctor_get(x_12, 0);
|
||||
x_44 = lean_ctor_get(x_12, 1);
|
||||
lean_inc(x_44);
|
||||
lean_inc(x_43);
|
||||
lean_dec(x_12);
|
||||
x_45 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_45, 0, x_43);
|
||||
lean_ctor_set(x_45, 1, x_44);
|
||||
return x_45;
|
||||
lean_object* x_45; lean_object* x_46; lean_object* x_47;
|
||||
x_45 = lean_ctor_get(x_14, 0);
|
||||
x_46 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_46);
|
||||
lean_inc(x_45);
|
||||
lean_dec(x_14);
|
||||
x_47 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_47, 0, x_45);
|
||||
lean_ctor_set(x_47, 1, x_46);
|
||||
return x_47;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -23552,7 +23596,7 @@ x_6 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_5, x_1);
|
|||
return x_6;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_StructInst_initFn____x40_Lean_Elab_StructInst___hyg_9242_(lean_object* x_1) {
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_StructInst_initFn____x40_Lean_Elab_StructInst___hyg_9246_(lean_object* x_1) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_2; lean_object* x_3;
|
||||
|
|
@ -24132,7 +24176,7 @@ lean_mark_persistent(l___regBuiltin_Lean_Elab_Term_StructInst_elabStructInst___c
|
|||
res = l___regBuiltin_Lean_Elab_Term_StructInst_elabStructInst(lean_io_mk_world());
|
||||
if (lean_io_result_is_error(res)) return res;
|
||||
lean_dec_ref(res);
|
||||
res = l_Lean_Elab_Term_StructInst_initFn____x40_Lean_Elab_StructInst___hyg_9242_(lean_io_mk_world());
|
||||
res = l_Lean_Elab_Term_StructInst_initFn____x40_Lean_Elab_StructInst___hyg_9246_(lean_io_mk_world());
|
||||
if (lean_io_result_is_error(res)) return res;
|
||||
lean_dec_ref(res);
|
||||
return lean_io_result_mk_ok(lean_box(0));
|
||||
|
|
|
|||
1597
stage0/stdlib/Lean/Elab/Structure.c
generated
1597
stage0/stdlib/Lean/Elab/Structure.c
generated
File diff suppressed because it is too large
Load diff
307
stage0/stdlib/Lean/Elab/Syntax.c
generated
307
stage0/stdlib/Lean/Elab/Syntax.c
generated
|
|
@ -50,6 +50,7 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Command_elabSyntaxAbbrev___lambda__1___boxe
|
|||
LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Term_checkLeftRec___spec__9___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
extern lean_object* l_Lean_nullKind;
|
||||
static lean_object* l_Lean_Elab_Term_toParserDescr_processNullaryOrCat___closed__20;
|
||||
lean_object* l_Lean_throwErrorAt___at_Lean_Elab_Command_elabCommand___spec__11(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Command_elabSyntax___lambda__6(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 lean_object* l___private_Lean_Elab_Syntax_0__Lean_Elab_Command_declareSyntaxCatQuotParser___closed__46;
|
||||
extern lean_object* l_Lean_Parser_leadPrec;
|
||||
|
|
@ -243,7 +244,6 @@ lean_object* lean_array_fget(lean_object*, lean_object*);
|
|||
static lean_object* l_Lean_Elab_Command_elabSyntax___lambda__4___closed__10;
|
||||
static lean_object* l___private_Lean_Elab_Syntax_0__Lean_Elab_Command_declareSyntaxCatQuotParser___closed__36;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Term_toParserDescr_process___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Command_expandNoKindMacroRulesAux___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Command_inferMacroRulesAltKind___spec__1(lean_object*, lean_object*);
|
||||
static lean_object* l_Subarray_forInUnsafe_loop___at___private_Lean_Elab_Syntax_0__Lean_Elab_Term_mkParserSeq___spec__1___closed__13;
|
||||
static lean_object* l_Lean_Elab_Term_toParserDescr_processNonReserved___closed__17;
|
||||
|
|
@ -305,6 +305,7 @@ static lean_object* l___private_Lean_Elab_Syntax_0__Lean_Elab_Command_declareSyn
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_Command_strLitToPattern___boxed(lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_throwError___at_Lean_Elab_Command_elabCommand___spec__1(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_Syntax_0__Lean_Elab_Command_declareSyntaxCatQuotParser___closed__8;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Command_expandNoKindMacroRulesAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_addTrace___at_Lean_Elab_Term_checkLeftRec___spec__3___closed__5;
|
||||
static lean_object* l_Lean_Elab_Term_toParserDescr_ensureNoPrec___closed__1;
|
||||
lean_object* l_Nat_repr(lean_object*);
|
||||
|
|
@ -450,7 +451,6 @@ LEAN_EXPORT lean_object* l_Lean_throwErrorAt___at_Lean_Elab_Term_toParserDescr_p
|
|||
LEAN_EXPORT lean_object* l_Lean_throwUnknownConstant___at_Lean_Elab_Term_toParserDescr_resolveParserName___spec__7(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_resolveGlobalConstCore___at_Lean_Elab_Term_toParserDescr_resolveParserName___spec__5___lambda__1(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 lean_object* l_Lean_Elab_Command_elabSyntax___closed__4;
|
||||
lean_object* l_Lean_Elab_logTrace___at_Lean_Elab_Command_elabCommand___spec__9(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* lean_name_append_after(lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_Syntax_0__Lean_Elab_Command_declareSyntaxCatQuotParser___closed__69;
|
||||
static lean_object* l_Subarray_forInUnsafe_loop___at___private_Lean_Elab_Syntax_0__Lean_Elab_Term_mkParserSeq___spec__1___closed__11;
|
||||
|
|
@ -579,6 +579,7 @@ lean_object* l_Lean_Elab_Term_elabBinders___rarg(lean_object*, lean_object*, lea
|
|||
LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Term_toParserDescr_process___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_List_forM___at_Lean_Elab_Command_elabCommand___spec__5(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_Syntax_0__Lean_Elab_Command_declareSyntaxCatQuotParser___closed__55;
|
||||
lean_object* l_Lean_Elab_logTrace___at_Lean_Elab_Command_elabCommand___spec__14(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Term_toParserDescr_processNullaryOrCat___closed__5;
|
||||
static lean_object* l_Lean_Elab_Command_elabSyntax___lambda__4___closed__1;
|
||||
extern lean_object* l_Lean_Elab_unsupportedSyntaxExceptionId;
|
||||
|
|
@ -660,7 +661,6 @@ static lean_object* l_Lean_Elab_Term_toParserDescr_processNullaryOrCat___closed_
|
|||
LEAN_EXPORT lean_object* l___private_Lean_Util_Trace_0__Lean_checkTraceOptionM___at_Lean_Elab_Term_checkLeftRec___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Command_elabSyntaxAbbrev___lambda__2___closed__6;
|
||||
static lean_object* l_Lean_Elab_Term_toParserDescr_processUnary___closed__6;
|
||||
LEAN_EXPORT lean_object* l_Lean_throwErrorAt___at_Lean_Elab_Command_expandNoKindMacroRulesAux___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Command_elabDeclareSyntaxCat(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___regBuiltin_Lean_Elab_Command_elabDeclareSyntaxCat(lean_object*);
|
||||
static lean_object* l_Lean_Elab_Term_toParserDescr_processSepBy1___lambda__1___closed__11;
|
||||
|
|
@ -682,7 +682,6 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Command_elabSyntax___lambda__2___boxed(lean
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_toParserDescr_processNonReserved___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
uint8_t lean_nat_dec_lt(lean_object*, lean_object*);
|
||||
static lean_object* l_Subarray_forInUnsafe_loop___at___private_Lean_Elab_Syntax_0__Lean_Elab_Term_mkParserSeq___spec__1___closed__21;
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Command_expandNoKindMacroRulesAux___spec__4(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Subarray_forInUnsafe_loop___at___private_Lean_Elab_Syntax_0__Lean_Elab_Term_mkParserSeq___spec__1___closed__4;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_expandOptPrecedence(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
|
||||
_start:
|
||||
|
|
@ -1904,11 +1903,8 @@ return x_9;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Term_checkLeftRec___spec__1___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
lean_object* x_5; lean_object* x_6;
|
||||
x_5 = l_Lean_Elab_expandMacroImpl_x3f(x_1, x_2, x_3, x_4);
|
||||
if (lean_obj_tag(x_5) == 0)
|
||||
{
|
||||
lean_object* x_6;
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
|
|
@ -1943,89 +1939,131 @@ uint8_t x_13;
|
|||
x_13 = !lean_is_exclusive(x_6);
|
||||
if (x_13 == 0)
|
||||
{
|
||||
uint8_t x_14;
|
||||
x_14 = !lean_is_exclusive(x_5);
|
||||
if (x_14 == 0)
|
||||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_ctor_get(x_6, 0);
|
||||
x_15 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_14);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_ctor_get(x_6, 0);
|
||||
x_16 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
uint8_t x_16;
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_17);
|
||||
lean_free_object(x_6);
|
||||
x_16 = !lean_is_exclusive(x_5);
|
||||
if (x_16 == 0)
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18;
|
||||
x_17 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_17);
|
||||
x_18 = lean_box(0);
|
||||
lean_ctor_set(x_5, 0, x_18);
|
||||
return x_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_18 = lean_ctor_get(x_6, 0);
|
||||
lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_19 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_5);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
lean_ctor_set(x_6, 0, x_20);
|
||||
x_20 = lean_box(0);
|
||||
x_21 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_21, 0, x_6);
|
||||
lean_ctor_set(x_21, 0, x_20);
|
||||
lean_ctor_set(x_21, 1, x_19);
|
||||
return x_21;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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_22 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_6);
|
||||
x_23 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_23);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_24 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_24 = lean_box(0);
|
||||
uint8_t x_22;
|
||||
x_22 = !lean_is_exclusive(x_5);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_23);
|
||||
x_24 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_24);
|
||||
return x_5;
|
||||
}
|
||||
x_25 = lean_ctor_get(x_22, 1);
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_22);
|
||||
x_26 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
if (lean_is_scalar(x_24)) {
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_27 = x_24;
|
||||
}
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
lean_ctor_set(x_27, 1, x_23);
|
||||
lean_dec(x_5);
|
||||
x_26 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_26);
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_6);
|
||||
lean_ctor_set(x_27, 1, x_25);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_5);
|
||||
if (x_28 == 0)
|
||||
lean_object* x_28; lean_object* x_29;
|
||||
x_28 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_6);
|
||||
x_29 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_28);
|
||||
if (lean_obj_tag(x_29) == 0)
|
||||
{
|
||||
return x_5;
|
||||
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33;
|
||||
lean_dec(x_29);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_31 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_31 = lean_box(0);
|
||||
}
|
||||
x_32 = lean_box(0);
|
||||
if (lean_is_scalar(x_31)) {
|
||||
x_33 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_33 = x_31;
|
||||
}
|
||||
lean_ctor_set(x_33, 0, x_32);
|
||||
lean_ctor_set(x_33, 1, x_30);
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
x_29 = lean_ctor_get(x_5, 0);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_5);
|
||||
x_31 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_34 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_34);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_35 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_35 = lean_box(0);
|
||||
}
|
||||
x_36 = lean_ctor_get(x_29, 0);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_29);
|
||||
x_37 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
if (lean_is_scalar(x_35)) {
|
||||
x_38 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_38 = x_35;
|
||||
}
|
||||
lean_ctor_set(x_38, 0, x_37);
|
||||
lean_ctor_set(x_38, 1, x_34);
|
||||
return x_38;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -14741,7 +14779,7 @@ x_16 = lean_alloc_ctor(1, 1, 0);
|
|||
lean_ctor_set(x_16, 0, x_2);
|
||||
lean_inc(x_4);
|
||||
lean_inc(x_3);
|
||||
x_17 = l_Lean_Elab_logTrace___at_Lean_Elab_Command_elabCommand___spec__9(x_12, x_16, x_3, x_4, x_8);
|
||||
x_17 = l_Lean_Elab_logTrace___at_Lean_Elab_Command_elabCommand___spec__14(x_12, x_16, x_3, x_4, x_8);
|
||||
x_18 = lean_ctor_get(x_17, 1);
|
||||
lean_inc(x_18);
|
||||
lean_dec(x_17);
|
||||
|
|
@ -18840,114 +18878,6 @@ return x_26;
|
|||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Command_expandNoKindMacroRulesAux___spec__4(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; lean_object* x_13; uint8_t x_14;
|
||||
x_5 = l_Lean_Elab_Command_getRef(x_2, x_3, x_4);
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
x_7 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_7);
|
||||
lean_dec(x_5);
|
||||
x_8 = lean_ctor_get(x_2, 4);
|
||||
lean_inc(x_8);
|
||||
lean_inc(x_8);
|
||||
x_9 = l_Lean_Elab_getBetterRef(x_6, x_8);
|
||||
lean_dec(x_6);
|
||||
x_10 = l_Lean_addMessageContextPartial___at_Lean_Elab_Command_instAddMessageContextCommandElabM___spec__1(x_1, x_2, x_3, x_7);
|
||||
x_11 = lean_ctor_get(x_10, 0);
|
||||
lean_inc(x_11);
|
||||
x_12 = lean_ctor_get(x_10, 1);
|
||||
lean_inc(x_12);
|
||||
lean_dec(x_10);
|
||||
x_13 = l_Lean_Elab_addMacroStack___at_Lean_Elab_Command_instAddErrorMessageContextCommandElabM___spec__1(x_11, x_8, x_2, x_3, x_12);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_8);
|
||||
x_14 = !lean_is_exclusive(x_13);
|
||||
if (x_14 == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16;
|
||||
x_15 = lean_ctor_get(x_13, 0);
|
||||
x_16 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_16, 0, x_9);
|
||||
lean_ctor_set(x_16, 1, x_15);
|
||||
lean_ctor_set_tag(x_13, 1);
|
||||
lean_ctor_set(x_13, 0, x_16);
|
||||
return x_13;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20;
|
||||
x_17 = lean_ctor_get(x_13, 0);
|
||||
x_18 = lean_ctor_get(x_13, 1);
|
||||
lean_inc(x_18);
|
||||
lean_inc(x_17);
|
||||
lean_dec(x_13);
|
||||
x_19 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_19, 0, x_9);
|
||||
lean_ctor_set(x_19, 1, x_17);
|
||||
x_20 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_20, 0, x_19);
|
||||
lean_ctor_set(x_20, 1, x_18);
|
||||
return x_20;
|
||||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_throwErrorAt___at_Lean_Elab_Command_expandNoKindMacroRulesAux___spec__3(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; lean_object* x_7; lean_object* x_8; lean_object* x_9; uint8_t x_10;
|
||||
x_6 = l_Lean_Elab_Command_getRef(x_3, x_4, x_5);
|
||||
x_7 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_7);
|
||||
x_8 = lean_ctor_get(x_6, 1);
|
||||
lean_inc(x_8);
|
||||
lean_dec(x_6);
|
||||
x_9 = l_Lean_replaceRef(x_1, x_7);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_1);
|
||||
x_10 = !lean_is_exclusive(x_3);
|
||||
if (x_10 == 0)
|
||||
{
|
||||
lean_object* x_11; lean_object* x_12;
|
||||
x_11 = lean_ctor_get(x_3, 6);
|
||||
lean_dec(x_11);
|
||||
lean_ctor_set(x_3, 6, x_9);
|
||||
x_12 = l_Lean_throwError___at_Lean_Elab_Command_expandNoKindMacroRulesAux___spec__4(x_2, x_3, x_4, x_8);
|
||||
lean_dec(x_4);
|
||||
return x_12;
|
||||
}
|
||||
else
|
||||
{
|
||||
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;
|
||||
x_13 = lean_ctor_get(x_3, 0);
|
||||
x_14 = lean_ctor_get(x_3, 1);
|
||||
x_15 = lean_ctor_get(x_3, 2);
|
||||
x_16 = lean_ctor_get(x_3, 3);
|
||||
x_17 = lean_ctor_get(x_3, 4);
|
||||
x_18 = lean_ctor_get(x_3, 5);
|
||||
lean_inc(x_18);
|
||||
lean_inc(x_17);
|
||||
lean_inc(x_16);
|
||||
lean_inc(x_15);
|
||||
lean_inc(x_14);
|
||||
lean_inc(x_13);
|
||||
lean_dec(x_3);
|
||||
x_19 = lean_alloc_ctor(0, 7, 0);
|
||||
lean_ctor_set(x_19, 0, x_13);
|
||||
lean_ctor_set(x_19, 1, x_14);
|
||||
lean_ctor_set(x_19, 2, x_15);
|
||||
lean_ctor_set(x_19, 3, x_16);
|
||||
lean_ctor_set(x_19, 4, x_17);
|
||||
lean_ctor_set(x_19, 5, x_18);
|
||||
lean_ctor_set(x_19, 6, x_9);
|
||||
x_20 = l_Lean_throwError___at_Lean_Elab_Command_expandNoKindMacroRulesAux___spec__4(x_2, x_19, x_4, x_8);
|
||||
lean_dec(x_4);
|
||||
return x_20;
|
||||
}
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Elab_Command_expandNoKindMacroRulesAux___lambda__1___closed__1() {
|
||||
_start:
|
||||
{
|
||||
|
|
@ -19009,7 +18939,6 @@ if (x_11 == 0)
|
|||
{
|
||||
lean_object* x_12; lean_object* x_13; uint8_t x_14; lean_object* x_15; lean_object* x_16;
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
x_12 = lean_array_get_size(x_1);
|
||||
x_13 = lean_unsigned_to_nat(0u);
|
||||
x_14 = lean_nat_dec_lt(x_13, x_12);
|
||||
|
|
@ -19062,7 +18991,6 @@ lean_dec(x_8);
|
|||
lean_dec(x_7);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_77 = !lean_is_exclusive(x_74);
|
||||
if (x_77 == 0)
|
||||
{
|
||||
|
|
@ -19091,7 +19019,6 @@ if (x_14 == 0)
|
|||
{
|
||||
lean_object* x_54;
|
||||
lean_dec(x_12);
|
||||
lean_dec(x_1);
|
||||
x_54 = l___private_Lean_Elab_Syntax_0__Lean_Elab_Command_declareSyntaxCatQuotParser___closed__12;
|
||||
x_17 = x_54;
|
||||
x_18 = x_16;
|
||||
|
|
@ -19105,7 +19032,6 @@ if (x_55 == 0)
|
|||
{
|
||||
lean_object* x_56;
|
||||
lean_dec(x_12);
|
||||
lean_dec(x_1);
|
||||
x_56 = l___private_Lean_Elab_Syntax_0__Lean_Elab_Command_declareSyntaxCatQuotParser___closed__12;
|
||||
x_17 = x_56;
|
||||
x_18 = x_16;
|
||||
|
|
@ -19121,7 +19047,6 @@ x_59 = l___private_Lean_Elab_Syntax_0__Lean_Elab_Command_declareSyntaxCatQuotPar
|
|||
lean_inc(x_8);
|
||||
lean_inc(x_7);
|
||||
x_60 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_expandNoKindMacroRulesAux___spec__1(x_5, x_1, x_57, x_58, x_59, x_7, x_8, x_16);
|
||||
lean_dec(x_1);
|
||||
if (lean_obj_tag(x_60) == 0)
|
||||
{
|
||||
lean_object* x_61; lean_object* x_62;
|
||||
|
|
@ -19297,9 +19222,7 @@ else
|
|||
lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89;
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_81 = l_Lean_stringToMessageData(x_3);
|
||||
lean_dec(x_3);
|
||||
x_82 = l_Lean_Elab_Command_expandNoKindMacroRulesAux___lambda__1___closed__2;
|
||||
lean_inc(x_81);
|
||||
x_83 = lean_alloc_ctor(10, 2, 0);
|
||||
|
|
@ -19316,7 +19239,7 @@ x_87 = l_Lean_Elab_Command_expandNoKindMacroRulesAux___lambda__1___closed__6;
|
|||
x_88 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_88, 0, x_86);
|
||||
lean_ctor_set(x_88, 1, x_87);
|
||||
x_89 = l_Lean_throwErrorAt___at_Lean_Elab_Command_expandNoKindMacroRulesAux___spec__3(x_4, x_88, x_7, x_8, x_9);
|
||||
x_89 = l_Lean_throwErrorAt___at_Lean_Elab_Command_elabCommand___spec__11(x_4, x_88, x_7, x_8, x_9);
|
||||
return x_89;
|
||||
}
|
||||
}
|
||||
|
|
@ -19346,6 +19269,7 @@ if (x_13 == 0)
|
|||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_box(0);
|
||||
x_15 = l_Lean_Elab_Command_expandNoKindMacroRulesAux___lambda__1(x_1, x_3, x_2, x_9, x_11, x_14, x_4, x_5, x_12);
|
||||
lean_dec(x_2);
|
||||
return x_15;
|
||||
}
|
||||
else
|
||||
|
|
@ -19361,6 +19285,7 @@ if (x_18 == 0)
|
|||
lean_object* x_19; lean_object* x_20;
|
||||
x_19 = lean_box(0);
|
||||
x_20 = l_Lean_Elab_Command_expandNoKindMacroRulesAux___lambda__1(x_1, x_3, x_2, x_9, x_11, x_19, x_4, x_5, x_12);
|
||||
lean_dec(x_2);
|
||||
return x_20;
|
||||
}
|
||||
else
|
||||
|
|
@ -19370,6 +19295,7 @@ x_21 = l_Lean_Name_getPrefix(x_11);
|
|||
lean_dec(x_11);
|
||||
x_22 = lean_box(0);
|
||||
x_23 = l_Lean_Elab_Command_expandNoKindMacroRulesAux___lambda__1(x_1, x_3, x_2, x_9, x_21, x_22, x_4, x_5, x_12);
|
||||
lean_dec(x_2);
|
||||
return x_23;
|
||||
}
|
||||
}
|
||||
|
|
@ -19382,7 +19308,6 @@ lean_dec(x_5);
|
|||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_24 = !lean_is_exclusive(x_10);
|
||||
if (x_24 == 0)
|
||||
{
|
||||
|
|
@ -19432,24 +19357,26 @@ lean_dec(x_1);
|
|||
return x_11;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Command_expandNoKindMacroRulesAux___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
x_5 = l_Lean_throwError___at_Lean_Elab_Command_expandNoKindMacroRulesAux___spec__4(x_1, x_2, x_3, x_4);
|
||||
lean_dec(x_3);
|
||||
return x_5;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Command_expandNoKindMacroRulesAux___lambda__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) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_10;
|
||||
x_10 = l_Lean_Elab_Command_expandNoKindMacroRulesAux___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_1);
|
||||
return x_10;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Command_expandNoKindMacroRulesAux___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) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_7;
|
||||
x_7 = l_Lean_Elab_Command_expandNoKindMacroRulesAux(x_1, x_2, x_3, x_4, x_5, x_6);
|
||||
lean_dec(x_1);
|
||||
return x_7;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Command_strLitToPattern(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
|
||||
_start:
|
||||
{
|
||||
|
|
|
|||
157
stage0/stdlib/Lean/Elab/Tactic/Basic.c
generated
157
stage0/stdlib/Lean/Elab/Tactic/Basic.c
generated
|
|
@ -5313,11 +5313,8 @@ return x_9;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Tactic_expandTacticMacroFns_loop___spec__1___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
lean_object* x_5; lean_object* x_6;
|
||||
x_5 = l_Lean_Elab_expandMacroImpl_x3f(x_1, x_2, x_3, x_4);
|
||||
if (lean_obj_tag(x_5) == 0)
|
||||
{
|
||||
lean_object* x_6;
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
|
|
@ -5352,89 +5349,131 @@ uint8_t x_13;
|
|||
x_13 = !lean_is_exclusive(x_6);
|
||||
if (x_13 == 0)
|
||||
{
|
||||
uint8_t x_14;
|
||||
x_14 = !lean_is_exclusive(x_5);
|
||||
if (x_14 == 0)
|
||||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_ctor_get(x_6, 0);
|
||||
x_15 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_14);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_ctor_get(x_6, 0);
|
||||
x_16 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
uint8_t x_16;
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_17);
|
||||
lean_free_object(x_6);
|
||||
x_16 = !lean_is_exclusive(x_5);
|
||||
if (x_16 == 0)
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18;
|
||||
x_17 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_17);
|
||||
x_18 = lean_box(0);
|
||||
lean_ctor_set(x_5, 0, x_18);
|
||||
return x_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_18 = lean_ctor_get(x_6, 0);
|
||||
lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_19 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_5);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
lean_ctor_set(x_6, 0, x_20);
|
||||
x_20 = lean_box(0);
|
||||
x_21 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_21, 0, x_6);
|
||||
lean_ctor_set(x_21, 0, x_20);
|
||||
lean_ctor_set(x_21, 1, x_19);
|
||||
return x_21;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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_22 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_6);
|
||||
x_23 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_23);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_24 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_24 = lean_box(0);
|
||||
uint8_t x_22;
|
||||
x_22 = !lean_is_exclusive(x_5);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_23);
|
||||
x_24 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_24);
|
||||
return x_5;
|
||||
}
|
||||
x_25 = lean_ctor_get(x_22, 1);
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_22);
|
||||
x_26 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
if (lean_is_scalar(x_24)) {
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_27 = x_24;
|
||||
}
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
lean_ctor_set(x_27, 1, x_23);
|
||||
lean_dec(x_5);
|
||||
x_26 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_26);
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_6);
|
||||
lean_ctor_set(x_27, 1, x_25);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_5);
|
||||
if (x_28 == 0)
|
||||
lean_object* x_28; lean_object* x_29;
|
||||
x_28 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_6);
|
||||
x_29 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_28);
|
||||
if (lean_obj_tag(x_29) == 0)
|
||||
{
|
||||
return x_5;
|
||||
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33;
|
||||
lean_dec(x_29);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_31 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_31 = lean_box(0);
|
||||
}
|
||||
x_32 = lean_box(0);
|
||||
if (lean_is_scalar(x_31)) {
|
||||
x_33 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_33 = x_31;
|
||||
}
|
||||
lean_ctor_set(x_33, 0, x_32);
|
||||
lean_ctor_set(x_33, 1, x_30);
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
x_29 = lean_ctor_get(x_5, 0);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_5);
|
||||
x_31 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_34 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_34);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_35 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_35 = lean_box(0);
|
||||
}
|
||||
x_36 = lean_ctor_get(x_29, 0);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_29);
|
||||
x_37 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
if (lean_is_scalar(x_35)) {
|
||||
x_38 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_38 = x_35;
|
||||
}
|
||||
lean_ctor_set(x_38, 0, x_37);
|
||||
lean_ctor_set(x_38, 1, x_34);
|
||||
return x_38;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
40
stage0/stdlib/Lean/Elab/Tactic/Conv/Simp.c
generated
40
stage0/stdlib/Lean/Elab/Tactic/Conv/Simp.c
generated
|
|
@ -31,8 +31,10 @@ static lean_object* l___regBuiltin_Lean_Elab_Tactic_Conv_evalSimp___closed__17;
|
|||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_Conv_evalSimpMatch___closed__4;
|
||||
lean_object* l_Lean_Meta_Simp_Result_getProof(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_Conv_evalSimp___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_Conv_evalSimp___closed__1;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_Conv_evalSimp___lambda__1(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_Elab_Tactic_Conv_evalSimp___lambda__2___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_Elab_Tactic_Conv_evalSimp___lambda__1(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_Elab_Tactic_Conv_evalSimp(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_Elab_Tactic_Conv_evalSimpMatch(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_Conv_evalSimpMatch___boxed(lean_object*);
|
||||
|
|
@ -50,7 +52,7 @@ LEAN_EXPORT lean_object* l___regBuiltin_Lean_Elab_Tactic_Conv_evalSimp(lean_obje
|
|||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_Conv_evalSimp___closed__7;
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_Conv_evalSimp___closed__5;
|
||||
lean_object* l_Lean_Meta_Split_simpMatch(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_Conv_evalSimp___lambda__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_Elab_Tactic_Conv_evalSimp___lambda__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_object* l_Lean_Elab_Tactic_Conv_updateLhs(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___regBuiltin_Lean_Elab_Tactic_Conv_evalSimpMatch(lean_object*);
|
||||
lean_object* l_Lean_Elab_Tactic_mkSimpContext(lean_object*, uint8_t, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -131,7 +133,15 @@ return x_22;
|
|||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_Conv_evalSimp___lambda__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, lean_object* x_10) {
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_Conv_evalSimp___lambda__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, lean_object* x_10, lean_object* x_11, lean_object* x_12) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_13;
|
||||
x_13 = l_Lean_Meta_simp(x_1, x_2, x_3, x_8, x_9, x_10, x_11, x_12);
|
||||
return x_13;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_Conv_evalSimp___lambda__2(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:
|
||||
{
|
||||
uint8_t x_11; lean_object* x_12;
|
||||
|
|
@ -175,13 +185,17 @@ lean_inc(x_18);
|
|||
x_19 = lean_ctor_get(x_17, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_17);
|
||||
x_20 = lean_alloc_closure((void*)(l_Lean_Meta_simp), 8, 2);
|
||||
x_20 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_Conv_evalSimp___lambda__1___boxed), 12, 2);
|
||||
lean_closure_set(x_20, 0, x_18);
|
||||
lean_closure_set(x_20, 1, x_15);
|
||||
lean_inc(x_9);
|
||||
lean_inc(x_8);
|
||||
lean_inc(x_7);
|
||||
lean_inc(x_6);
|
||||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
lean_inc(x_3);
|
||||
lean_inc(x_2);
|
||||
x_21 = l_Lean_Elab_Tactic_Simp_DischargeWrapper_with___rarg(x_16, x_20, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_19);
|
||||
lean_dec(x_16);
|
||||
if (lean_obj_tag(x_21) == 0)
|
||||
|
|
@ -295,17 +309,29 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_Conv_evalSimp(lean_object* x_1, lean
|
|||
_start:
|
||||
{
|
||||
lean_object* x_11; lean_object* x_12;
|
||||
x_11 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_Conv_evalSimp___lambda__1___boxed), 10, 1);
|
||||
x_11 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_Conv_evalSimp___lambda__2___boxed), 10, 1);
|
||||
lean_closure_set(x_11, 0, x_1);
|
||||
x_12 = l_Lean_Elab_Tactic_withMainContext___rarg(x_11, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10);
|
||||
return x_12;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_Conv_evalSimp___lambda__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_EXPORT lean_object* l_Lean_Elab_Tactic_Conv_evalSimp___lambda__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:
|
||||
{
|
||||
lean_object* x_13;
|
||||
x_13 = l_Lean_Elab_Tactic_Conv_evalSimp___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
return x_13;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_Conv_evalSimp___lambda__2___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_11;
|
||||
x_11 = l_Lean_Elab_Tactic_Conv_evalSimp___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10);
|
||||
x_11 = l_Lean_Elab_Tactic_Conv_evalSimp___lambda__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10);
|
||||
lean_dec(x_1);
|
||||
return x_11;
|
||||
}
|
||||
|
|
|
|||
157
stage0/stdlib/Lean/Elab/Tactic/Match.c
generated
157
stage0/stdlib/Lean/Elab/Tactic/Match.c
generated
|
|
@ -2873,11 +2873,8 @@ return x_9;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at_Lean_Elab_Tactic_evalMatch___spec__1___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
lean_object* x_5; lean_object* x_6;
|
||||
x_5 = l_Lean_Elab_expandMacroImpl_x3f(x_1, x_2, x_3, x_4);
|
||||
if (lean_obj_tag(x_5) == 0)
|
||||
{
|
||||
lean_object* x_6;
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
|
|
@ -2912,89 +2909,131 @@ uint8_t x_13;
|
|||
x_13 = !lean_is_exclusive(x_6);
|
||||
if (x_13 == 0)
|
||||
{
|
||||
uint8_t x_14;
|
||||
x_14 = !lean_is_exclusive(x_5);
|
||||
if (x_14 == 0)
|
||||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_ctor_get(x_6, 0);
|
||||
x_15 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_14);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_ctor_get(x_6, 0);
|
||||
x_16 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
uint8_t x_16;
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_17);
|
||||
lean_free_object(x_6);
|
||||
x_16 = !lean_is_exclusive(x_5);
|
||||
if (x_16 == 0)
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18;
|
||||
x_17 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_17);
|
||||
x_18 = lean_box(0);
|
||||
lean_ctor_set(x_5, 0, x_18);
|
||||
return x_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_18 = lean_ctor_get(x_6, 0);
|
||||
lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_19 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_5);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
lean_ctor_set(x_6, 0, x_20);
|
||||
x_20 = lean_box(0);
|
||||
x_21 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_21, 0, x_6);
|
||||
lean_ctor_set(x_21, 0, x_20);
|
||||
lean_ctor_set(x_21, 1, x_19);
|
||||
return x_21;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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_22 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_6);
|
||||
x_23 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_23);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_24 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_24 = lean_box(0);
|
||||
uint8_t x_22;
|
||||
x_22 = !lean_is_exclusive(x_5);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_23);
|
||||
x_24 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_24);
|
||||
return x_5;
|
||||
}
|
||||
x_25 = lean_ctor_get(x_22, 1);
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_22);
|
||||
x_26 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
if (lean_is_scalar(x_24)) {
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_27 = x_24;
|
||||
}
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
lean_ctor_set(x_27, 1, x_23);
|
||||
lean_dec(x_5);
|
||||
x_26 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_26);
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_6);
|
||||
lean_ctor_set(x_27, 1, x_25);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_5);
|
||||
if (x_28 == 0)
|
||||
lean_object* x_28; lean_object* x_29;
|
||||
x_28 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_6);
|
||||
x_29 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_28);
|
||||
if (lean_obj_tag(x_29) == 0)
|
||||
{
|
||||
return x_5;
|
||||
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33;
|
||||
lean_dec(x_29);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_31 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_31 = lean_box(0);
|
||||
}
|
||||
x_32 = lean_box(0);
|
||||
if (lean_is_scalar(x_31)) {
|
||||
x_33 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_33 = x_31;
|
||||
}
|
||||
lean_ctor_set(x_33, 0, x_32);
|
||||
lean_ctor_set(x_33, 1, x_30);
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
x_29 = lean_ctor_get(x_5, 0);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_5);
|
||||
x_31 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_34 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_34);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_35 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_35 = lean_box(0);
|
||||
}
|
||||
x_36 = lean_ctor_get(x_29, 0);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_29);
|
||||
x_37 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
if (lean_is_scalar(x_35)) {
|
||||
x_38 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_38 = x_35;
|
||||
}
|
||||
lean_ctor_set(x_38, 0, x_37);
|
||||
lean_ctor_set(x_38, 1, x_34);
|
||||
return x_38;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
502
stage0/stdlib/Lean/Elab/Tactic/Simp.c
generated
502
stage0/stdlib/Lean/Elab/Tactic/Simp.c
generated
|
|
@ -17,7 +17,7 @@ LEAN_EXPORT lean_object* l_Lean_Meta_SimpLemmas_eraseCore___at___private_Lean_El
|
|||
LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_getPropHyps___spec__4(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_Std_PersistentArray_forInAux___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_getPropHyps___spec__2___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_MonadRef_mkInfoFromRefPos___at_Lean_Elab_Tactic_tacticToDischarge___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp___lambda__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_Elab_Tactic_evalSimp___lambda__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_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___lambda__1(uint8_t, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
extern lean_object* l_Std_PersistentHashMap_empty___at_Lean_KeyedDeclsAttribute_ExtensionState_declNames___default___spec__1;
|
||||
size_t lean_usize_add(size_t, size_t);
|
||||
|
|
@ -59,11 +59,12 @@ LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_m
|
|||
static lean_object* l_Lean_Elab_Tactic_tacticToDischarge___closed__5;
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalSimpAll___closed__5;
|
||||
static lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_Tactic_mkSimpContext___spec__3___closed__1;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_simpLocation_go___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_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_Tactic_mkSimpContext___spec__3___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 lean_object* l_Lean_Elab_Tactic_tacticToDischarge___closed__14;
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Elab_Tactic_evalSimp___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*);
|
||||
lean_object* lean_environment_find(lean_object*, lean_object*);
|
||||
lean_object* l_Lean_getConstInfo___at_Lean_Meta_mkConstWithFreshMVarLevels___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_simpLocation___lambda__1(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_st_ref_get(lean_object*, lean_object*);
|
||||
extern lean_object* l_Lean_instHashableName;
|
||||
static lean_object* l_Lean_Elab_Tactic_tacticToDischarge___closed__22;
|
||||
|
|
@ -75,7 +76,6 @@ static lean_object* l_Lean_Elab_Tactic_tacticToDischarge___lambda__3___closed__1
|
|||
static lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_addDeclToUnfoldOrLemma___closed__2;
|
||||
uint8_t lean_name_eq(lean_object*, lean_object*);
|
||||
static lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_Tactic_mkSimpContext___spec__3___closed__2;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp_go(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_object*);
|
||||
static lean_object* l_Lean_Elab_Tactic_evalUnsafe____x40_Lean_Elab_Tactic_Simp___hyg_5____closed__6;
|
||||
static lean_object* l_Lean_throwUnknownConstant___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___spec__9___closed__1;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_addDeclToUnfoldOrLemma___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -85,15 +85,16 @@ lean_object* lean_array_push(lean_object*, lean_object*);
|
|||
lean_object* lean_array_get_size(lean_object*);
|
||||
lean_object* lean_string_append(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_throwUnknownConstant___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___spec__9___closed__4;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp___lambda__2(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_object*);
|
||||
lean_object* l_Lean_Elab_Tactic_withMainContext___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Elab_Term_TermElabM_run___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_simpLocation_go(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_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_tacticToDischarge___lambda__3___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_Elab_Tactic_Simp_0__Lean_Elab_Tactic_addSimpLemma___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Tactic_tacticToDischarge___closed__4;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_getPropHyps(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Std_PersistentArray_forInAux___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_getPropHyps___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_simpLocation___lambda__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*, lean_object*);
|
||||
lean_object* l_Lean_Elab_Term_getMainModule___rarg(lean_object*, lean_object*);
|
||||
uint8_t lean_usize_dec_lt(size_t, size_t);
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalSimp___closed__7;
|
||||
|
|
@ -104,7 +105,6 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_Simp_DischargeWrapper_with(lean_obje
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_mkSimpContext___lambda__2(lean_object*, uint8_t, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Tactic_tacticToDischarge___closed__20;
|
||||
static lean_object* l_Lean_Elab_Tactic_mkSimpContext___closed__1;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp_go___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_EXPORT lean_object* l_Lean_Elab_pushInfoTree___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___spec__16(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Tactic_evalUnsafe____x40_Lean_Elab_Tactic_Simp___hyg_5____closed__1;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_mkSimpContext___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*);
|
||||
|
|
@ -116,6 +116,7 @@ lean_object* l_List_mapTRAux___at_Lean_resolveGlobalConstNoOverload___spec__1(le
|
|||
LEAN_EXPORT lean_object* l_Lean_Meta_SimpLemmas_eraseCore___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___spec__18___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_SimpLemmas_erase___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___spec__17___lambda__1(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 lean_object* l___regBuiltin_Lean_Elab_Tactic_evalSimpAll___closed__1;
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Elab_Tactic_simpLocation___spec__1(size_t, size_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_Array_forInUnsafe_loop___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___spec__19(uint8_t, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_ConstantInfo_levelParams(lean_object*);
|
||||
LEAN_EXPORT uint8_t l_Lean_Elab_Tactic_ElabSimpArgsResult_starArg___default;
|
||||
|
|
@ -133,7 +134,6 @@ LEAN_EXPORT lean_object* l_Lean_throwUnknownConstant___at___private_Lean_Elab_Ta
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_eval____x40_Lean_Elab_Tactic_Simp___hyg_108____boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_abstractMVars(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Tactic_tacticToDischarge___closed__15;
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Elab_Tactic_evalSimp___spec__1(size_t, size_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_Elab_Tactic_evalSimp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* lean_st_ref_take(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Tactic_mkSimpContext___lambda__2___closed__1;
|
||||
|
|
@ -169,21 +169,22 @@ LEAN_EXPORT lean_object* l_Std_PersistentArray_forIn___at___private_Lean_Elab_Ta
|
|||
static lean_object* l_Lean_Elab_Tactic_mkSimpContext___lambda__2___closed__4;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_resolveGlobalConstNoOverloadWithInfo___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___spec__2___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Tactic_tacticToDischarge___lambda__3___closed__2;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp_go___lambda__1(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_resolveGlobalConst___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___spec__4(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_Elab_pushInfoLeaf___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___spec__15___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Syntax_getId(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp___lambda__1(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_Elab_Tactic_evalSimp___lambda__1(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 lean_object* l_Lean_withoutModifyingState___at_Lean_Elab_Tactic_elabSimpConfigCore___spec__1___at_Lean_Elab_Tactic_elabSimpConfigCore___spec__2___closed__8;
|
||||
lean_object* lean_format_pretty(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_resolveGlobalConstCore___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___spec__7___lambda__1(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_Std_PersistentHashMap_mkEmptyEntriesArray(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_SimpLemmas_erase___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___spec__17___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_Elab_Term_synthesizeSyntheticMVars_loop(uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_simpLocation(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_Lean_throwErrorAt___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___spec__10(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_Array_forInUnsafe_loop___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_getPropHyps___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Elab_Term_getCurrMacroScope(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_withoutModifyingState___at_Lean_Elab_Tactic_elabSimpConfigCore___spec__1___at_Lean_Elab_Tactic_elabSimpConfigCore___spec__2___closed__4;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_simpLocation___lambda__2(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_object*);
|
||||
static lean_object* l_Lean_Meta_SimpLemmas_erase___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___spec__17___closed__1;
|
||||
static lean_object* l_Lean_Elab_Tactic_tacticToDischarge___closed__7;
|
||||
lean_object* l_Lean_Elab_Tactic_getMainGoal(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -196,7 +197,6 @@ LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_a
|
|||
static lean_object* l_Lean_Elab_Tactic_elabSimpConfigCtxCore___closed__3;
|
||||
static lean_object* l_Lean_Elab_Tactic_mkSimpContext___lambda__2___closed__2;
|
||||
LEAN_EXPORT lean_object* l_Lean_resolveGlobalConstCore___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___spec__7___lambda__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_Elab_Tactic_evalSimp___lambda__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*, lean_object*);
|
||||
uint8_t l_Lean_Expr_isConst(lean_object*);
|
||||
static lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___spec__19___closed__2;
|
||||
lean_object* l_Lean_LocalDecl_toExpr(lean_object*);
|
||||
|
|
@ -274,6 +274,7 @@ lean_object* l_Lean_Meta_getLocalDeclFromUserName(lean_object*, lean_object*, le
|
|||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalSimpAll___closed__2;
|
||||
LEAN_EXPORT lean_object* l_Lean_throwErrorAt___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___spec__5(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_List_mapTRAux___at_Lean_mkConstWithLevelParams___spec__1(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_simpLocation___boxed__const__1;
|
||||
lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_throwUnknownConstant___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpArgs___spec__9___closed__2;
|
||||
static lean_object* l_Lean_Elab_Tactic_elabSimpConfigCore___closed__3;
|
||||
|
|
@ -319,16 +320,15 @@ lean_object* l_unsafeCast(lean_object*, lean_object*, lean_object*);
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_eval____x40_Lean_Elab_Tactic_Simp___hyg_5_(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_eval____x40_Lean_Elab_Tactic_Simp___hyg_108_(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
uint8_t l_List_isEmpty___rarg(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Elab_Tactic_simpLocation___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 lean_object* l_Lean_Elab_Tactic_elabSimpConfigCtxCore___closed__1;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalUnsafe____x40_Lean_Elab_Tactic_Simp___hyg_108_(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalUnsafe____x40_Lean_Elab_Tactic_Simp___hyg_5_(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_SimpLemmas_addConst(lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_withoutModifyingState___at_Lean_Elab_Tactic_elabSimpConfigCore___spec__1___at_Lean_Elab_Tactic_elabSimpConfigCore___spec__2___closed__6;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp_go___lambda__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* l_List_toString___at_Lean_resolveGlobalConstNoOverloadCore___spec__2(lean_object*);
|
||||
uint8_t l_Std_PersistentHashMap_contains___at_Lean_NameSSet_contains___spec__4(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Tactic_evalUnsafe____x40_Lean_Elab_Tactic_Simp___hyg_5____closed__7;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp___boxed__const__1;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_addDeclToUnfoldOrLemma(lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_isProp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_tacticToDischarge___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -2180,7 +2180,7 @@ if (lean_obj_tag(x_1) == 0)
|
|||
{
|
||||
lean_object* x_25; lean_object* x_26;
|
||||
x_25 = lean_box(0);
|
||||
x_26 = lean_apply_6(x_2, x_25, x_7, x_8, x_9, x_10, x_11);
|
||||
x_26 = lean_apply_10(x_2, x_25, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11);
|
||||
return x_26;
|
||||
}
|
||||
else
|
||||
|
|
@ -2210,7 +2210,8 @@ lean_inc(x_28);
|
|||
x_38 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_38, 0, x_28);
|
||||
lean_inc(x_10);
|
||||
x_39 = lean_apply_6(x_2, x_38, x_7, x_8, x_9, x_10, x_37);
|
||||
lean_inc(x_6);
|
||||
x_39 = lean_apply_10(x_2, x_38, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_37);
|
||||
if (lean_obj_tag(x_39) == 0)
|
||||
{
|
||||
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; lean_object* x_49; uint8_t x_50;
|
||||
|
|
@ -2235,6 +2236,7 @@ x_48 = lean_ctor_get(x_47, 1);
|
|||
lean_inc(x_48);
|
||||
lean_dec(x_47);
|
||||
x_49 = lean_st_ref_set(x_6, x_45, x_48);
|
||||
lean_dec(x_6);
|
||||
x_50 = !lean_is_exclusive(x_49);
|
||||
if (x_50 == 0)
|
||||
{
|
||||
|
|
@ -2289,6 +2291,7 @@ x_65 = lean_ctor_get(x_64, 1);
|
|||
lean_inc(x_65);
|
||||
lean_dec(x_64);
|
||||
x_66 = lean_st_ref_set(x_6, x_62, x_65);
|
||||
lean_dec(x_6);
|
||||
x_67 = !lean_is_exclusive(x_66);
|
||||
if (x_67 == 0)
|
||||
{
|
||||
|
|
@ -2385,10 +2388,6 @@ _start:
|
|||
{
|
||||
lean_object* x_12;
|
||||
x_12 = l_Lean_Elab_Tactic_Simp_DischargeWrapper_with___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_1);
|
||||
return x_12;
|
||||
}
|
||||
|
|
@ -11626,133 +11625,7 @@ lean_dec(x_1);
|
|||
return x_17;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp_go___lambda__1(lean_object* x_1, lean_object* x_2, uint8_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, lean_object* x_10, lean_object* x_11) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_12;
|
||||
x_12 = l_Lean_Meta_simpGoal(x_1, x_2, x_6, x_3, x_4, x_5, x_7, x_8, x_9, x_10, x_11);
|
||||
if (lean_obj_tag(x_12) == 0)
|
||||
{
|
||||
lean_object* x_13;
|
||||
x_13 = lean_ctor_get(x_12, 0);
|
||||
lean_inc(x_13);
|
||||
if (lean_obj_tag(x_13) == 0)
|
||||
{
|
||||
uint8_t x_14;
|
||||
x_14 = !lean_is_exclusive(x_12);
|
||||
if (x_14 == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16;
|
||||
x_15 = lean_ctor_get(x_12, 0);
|
||||
lean_dec(x_15);
|
||||
x_16 = lean_box(0);
|
||||
lean_ctor_set(x_12, 0, x_16);
|
||||
return x_12;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18; lean_object* x_19;
|
||||
x_17 = lean_ctor_get(x_12, 1);
|
||||
lean_inc(x_17);
|
||||
lean_dec(x_12);
|
||||
x_18 = lean_box(0);
|
||||
x_19 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_19, 0, x_18);
|
||||
lean_ctor_set(x_19, 1, x_17);
|
||||
return x_19;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_20;
|
||||
x_20 = !lean_is_exclusive(x_12);
|
||||
if (x_20 == 0)
|
||||
{
|
||||
lean_object* x_21; uint8_t x_22;
|
||||
x_21 = lean_ctor_get(x_12, 0);
|
||||
lean_dec(x_21);
|
||||
x_22 = !lean_is_exclusive(x_13);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_13, 0);
|
||||
x_24 = lean_ctor_get(x_23, 1);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_23);
|
||||
lean_ctor_set(x_13, 0, x_24);
|
||||
return x_12;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_13, 0);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_13);
|
||||
x_26 = lean_ctor_get(x_25, 1);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_25);
|
||||
x_27 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
lean_ctor_set(x_12, 0, x_27);
|
||||
return x_12;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33;
|
||||
x_28 = lean_ctor_get(x_12, 1);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_12);
|
||||
x_29 = lean_ctor_get(x_13, 0);
|
||||
lean_inc(x_29);
|
||||
if (lean_is_exclusive(x_13)) {
|
||||
lean_ctor_release(x_13, 0);
|
||||
x_30 = x_13;
|
||||
} else {
|
||||
lean_dec_ref(x_13);
|
||||
x_30 = lean_box(0);
|
||||
}
|
||||
x_31 = lean_ctor_get(x_29, 1);
|
||||
lean_inc(x_31);
|
||||
lean_dec(x_29);
|
||||
if (lean_is_scalar(x_30)) {
|
||||
x_32 = lean_alloc_ctor(1, 1, 0);
|
||||
} else {
|
||||
x_32 = x_30;
|
||||
}
|
||||
lean_ctor_set(x_32, 0, x_31);
|
||||
x_33 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_33, 0, x_32);
|
||||
lean_ctor_set(x_33, 1, x_28);
|
||||
return x_33;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_34;
|
||||
x_34 = !lean_is_exclusive(x_12);
|
||||
if (x_34 == 0)
|
||||
{
|
||||
return x_12;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_35; lean_object* x_36; lean_object* x_37;
|
||||
x_35 = lean_ctor_get(x_12, 0);
|
||||
x_36 = lean_ctor_get(x_12, 1);
|
||||
lean_inc(x_36);
|
||||
lean_inc(x_35);
|
||||
lean_dec(x_12);
|
||||
x_37 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_37, 0, x_35);
|
||||
lean_ctor_set(x_37, 1, x_36);
|
||||
return x_37;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp_go(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t 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_EXPORT lean_object* l_Lean_Elab_Tactic_simpLocation_go(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t 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;
|
||||
|
|
@ -11767,59 +11640,55 @@ lean_inc(x_6);
|
|||
x_15 = l_Lean_Elab_Tactic_getMainGoal(x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20;
|
||||
lean_object* x_16; lean_object* x_17; lean_object* x_18;
|
||||
x_16 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
lean_dec(x_15);
|
||||
x_18 = lean_box(x_4);
|
||||
x_19 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_evalSimp_go___lambda__1___boxed), 11, 5);
|
||||
lean_closure_set(x_19, 0, x_16);
|
||||
lean_closure_set(x_19, 1, x_1);
|
||||
lean_closure_set(x_19, 2, x_18);
|
||||
lean_closure_set(x_19, 3, x_3);
|
||||
lean_closure_set(x_19, 4, x_5);
|
||||
lean_inc(x_13);
|
||||
lean_inc(x_12);
|
||||
lean_inc(x_11);
|
||||
lean_inc(x_10);
|
||||
x_20 = l_Lean_Elab_Tactic_Simp_DischargeWrapper_with___rarg(x_2, x_19, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_17);
|
||||
if (lean_obj_tag(x_20) == 0)
|
||||
x_18 = l_Lean_Meta_simpGoal(x_16, x_1, x_2, x_4, x_3, x_5, x_10, x_11, x_12, x_13, x_17);
|
||||
if (lean_obj_tag(x_18) == 0)
|
||||
{
|
||||
lean_object* x_21;
|
||||
x_21 = lean_ctor_get(x_20, 0);
|
||||
lean_inc(x_21);
|
||||
if (lean_obj_tag(x_21) == 0)
|
||||
lean_object* x_19;
|
||||
x_19 = lean_ctor_get(x_18, 0);
|
||||
lean_inc(x_19);
|
||||
if (lean_obj_tag(x_19) == 0)
|
||||
{
|
||||
lean_object* x_22; lean_object* x_23; lean_object* x_24;
|
||||
x_22 = lean_ctor_get(x_20, 1);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_20);
|
||||
x_23 = lean_box(0);
|
||||
x_24 = l_Lean_Elab_Tactic_replaceMainGoal(x_23, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_22);
|
||||
return x_24;
|
||||
lean_object* x_20; lean_object* x_21; lean_object* x_22;
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
x_21 = lean_box(0);
|
||||
x_22 = l_Lean_Elab_Tactic_replaceMainGoal(x_21, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_20);
|
||||
return x_22;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29;
|
||||
x_25 = lean_ctor_get(x_20, 1);
|
||||
lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28;
|
||||
x_23 = lean_ctor_get(x_19, 0);
|
||||
lean_inc(x_23);
|
||||
lean_dec(x_19);
|
||||
x_24 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_18);
|
||||
x_25 = lean_ctor_get(x_23, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_20);
|
||||
x_26 = lean_ctor_get(x_21, 0);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_21);
|
||||
x_27 = lean_box(0);
|
||||
x_28 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_28, 0, x_26);
|
||||
lean_ctor_set(x_28, 1, x_27);
|
||||
x_29 = l_Lean_Elab_Tactic_replaceMainGoal(x_28, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_25);
|
||||
return x_29;
|
||||
lean_dec(x_23);
|
||||
x_26 = lean_box(0);
|
||||
x_27 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_25);
|
||||
lean_ctor_set(x_27, 1, x_26);
|
||||
x_28 = l_Lean_Elab_Tactic_replaceMainGoal(x_27, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_24);
|
||||
return x_28;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_30;
|
||||
uint8_t x_29;
|
||||
lean_dec(x_13);
|
||||
lean_dec(x_12);
|
||||
lean_dec(x_11);
|
||||
|
|
@ -11828,29 +11697,29 @@ lean_dec(x_9);
|
|||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
x_30 = !lean_is_exclusive(x_20);
|
||||
if (x_30 == 0)
|
||||
x_29 = !lean_is_exclusive(x_18);
|
||||
if (x_29 == 0)
|
||||
{
|
||||
return x_20;
|
||||
return x_18;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_31; lean_object* x_32; lean_object* x_33;
|
||||
x_31 = lean_ctor_get(x_20, 0);
|
||||
x_32 = lean_ctor_get(x_20, 1);
|
||||
lean_inc(x_32);
|
||||
lean_object* x_30; lean_object* x_31; lean_object* x_32;
|
||||
x_30 = lean_ctor_get(x_18, 0);
|
||||
x_31 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_31);
|
||||
lean_dec(x_20);
|
||||
x_33 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_33, 0, x_31);
|
||||
lean_ctor_set(x_33, 1, x_32);
|
||||
return x_33;
|
||||
lean_inc(x_30);
|
||||
lean_dec(x_18);
|
||||
x_32 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_32, 0, x_30);
|
||||
lean_ctor_set(x_32, 1, x_31);
|
||||
return x_32;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_34;
|
||||
uint8_t x_33;
|
||||
lean_dec(x_13);
|
||||
lean_dec(x_12);
|
||||
lean_dec(x_11);
|
||||
|
|
@ -11861,50 +11730,40 @@ lean_dec(x_7);
|
|||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_34 = !lean_is_exclusive(x_15);
|
||||
if (x_34 == 0)
|
||||
x_33 = !lean_is_exclusive(x_15);
|
||||
if (x_33 == 0)
|
||||
{
|
||||
return x_15;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_35; lean_object* x_36; lean_object* x_37;
|
||||
x_35 = lean_ctor_get(x_15, 0);
|
||||
x_36 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_36);
|
||||
lean_object* x_34; lean_object* x_35; lean_object* x_36;
|
||||
x_34 = lean_ctor_get(x_15, 0);
|
||||
x_35 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_35);
|
||||
lean_inc(x_34);
|
||||
lean_dec(x_15);
|
||||
x_37 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_37, 0, x_35);
|
||||
lean_ctor_set(x_37, 1, x_36);
|
||||
return x_37;
|
||||
x_36 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_36, 0, x_34);
|
||||
lean_ctor_set(x_36, 1, x_35);
|
||||
return x_36;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp_go___lambda__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) {
|
||||
_start:
|
||||
{
|
||||
uint8_t x_12; lean_object* x_13;
|
||||
x_12 = lean_unbox(x_3);
|
||||
lean_dec(x_3);
|
||||
x_13 = l_Lean_Elab_Tactic_evalSimp_go___lambda__1(x_1, x_2, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11);
|
||||
return x_13;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp_go___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_EXPORT lean_object* l_Lean_Elab_Tactic_simpLocation_go___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:
|
||||
{
|
||||
uint8_t x_15; lean_object* x_16;
|
||||
x_15 = lean_unbox(x_4);
|
||||
lean_dec(x_4);
|
||||
x_16 = l_Lean_Elab_Tactic_evalSimp_go(x_1, x_2, x_3, x_15, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14);
|
||||
lean_dec(x_2);
|
||||
x_16 = l_Lean_Elab_Tactic_simpLocation_go(x_1, x_2, x_3, x_15, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14);
|
||||
return x_16;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Elab_Tactic_evalSimp___spec__1(size_t x_1, size_t 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_Array_mapMUnsafe_map___at_Lean_Elab_Tactic_simpLocation___spec__1(size_t x_1, size_t 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;
|
||||
|
|
@ -11974,7 +11833,7 @@ return x_32;
|
|||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp___lambda__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, lean_object* x_10, lean_object* x_11, lean_object* x_12) {
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_simpLocation___lambda__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, lean_object* x_10, lean_object* x_11, lean_object* x_12) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_13;
|
||||
|
|
@ -12009,7 +11868,7 @@ x_18 = lean_ctor_get(x_16, 1);
|
|||
lean_inc(x_18);
|
||||
lean_dec(x_16);
|
||||
x_19 = 1;
|
||||
x_20 = l_Lean_Elab_Tactic_evalSimp_go(x_1, x_2, x_17, x_19, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_18);
|
||||
x_20 = l_Lean_Elab_Tactic_simpLocation_go(x_1, x_2, x_17, x_19, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_18);
|
||||
return x_20;
|
||||
}
|
||||
else
|
||||
|
|
@ -12024,6 +11883,7 @@ lean_dec(x_6);
|
|||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_21 = !lean_is_exclusive(x_16);
|
||||
if (x_21 == 0)
|
||||
|
|
@ -12057,6 +11917,7 @@ lean_dec(x_6);
|
|||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_25 = !lean_is_exclusive(x_13);
|
||||
if (x_25 == 0)
|
||||
|
|
@ -12079,7 +11940,7 @@ return x_28;
|
|||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t 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_EXPORT lean_object* l_Lean_Elab_Tactic_simpLocation___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t 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; lean_object* x_16;
|
||||
|
|
@ -12101,7 +11962,7 @@ lean_inc(x_17);
|
|||
x_18 = lean_ctor_get(x_16, 1);
|
||||
lean_inc(x_18);
|
||||
lean_dec(x_16);
|
||||
x_19 = l_Lean_Elab_Tactic_evalSimp_go(x_2, x_3, x_17, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_18);
|
||||
x_19 = l_Lean_Elab_Tactic_simpLocation_go(x_2, x_3, x_17, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_18);
|
||||
return x_19;
|
||||
}
|
||||
else
|
||||
|
|
@ -12116,6 +11977,7 @@ lean_dec(x_8);
|
|||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
x_20 = !lean_is_exclusive(x_16);
|
||||
if (x_20 == 0)
|
||||
|
|
@ -12138,7 +12000,7 @@ return x_23;
|
|||
}
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Elab_Tactic_evalSimp___boxed__const__1() {
|
||||
static lean_object* _init_l_Lean_Elab_Tactic_simpLocation___boxed__const__1() {
|
||||
_start:
|
||||
{
|
||||
size_t x_1; lean_object* x_2;
|
||||
|
|
@ -12147,6 +12009,89 @@ x_2 = lean_box_usize(x_1);
|
|||
return x_2;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_simpLocation(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:
|
||||
{
|
||||
if (lean_obj_tag(x_4) == 0)
|
||||
{
|
||||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_simpLocation___lambda__1), 12, 3);
|
||||
lean_closure_set(x_14, 0, x_1);
|
||||
lean_closure_set(x_14, 1, x_2);
|
||||
lean_closure_set(x_14, 2, x_3);
|
||||
x_15 = l_Lean_Elab_Tactic_withMainContext___rarg(x_14, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13);
|
||||
return x_15;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_16; uint8_t x_17; lean_object* x_18; size_t 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_16 = lean_ctor_get(x_4, 0);
|
||||
lean_inc(x_16);
|
||||
x_17 = lean_ctor_get_uint8(x_4, sizeof(void*)*1);
|
||||
lean_dec(x_4);
|
||||
x_18 = lean_array_get_size(x_16);
|
||||
x_19 = lean_usize_of_nat(x_18);
|
||||
lean_dec(x_18);
|
||||
x_20 = x_16;
|
||||
x_21 = lean_box_usize(x_19);
|
||||
x_22 = l_Lean_Elab_Tactic_simpLocation___boxed__const__1;
|
||||
x_23 = lean_alloc_closure((void*)(l_Array_mapMUnsafe_map___at_Lean_Elab_Tactic_simpLocation___spec__1___boxed), 12, 3);
|
||||
lean_closure_set(x_23, 0, x_21);
|
||||
lean_closure_set(x_23, 1, x_22);
|
||||
lean_closure_set(x_23, 2, x_20);
|
||||
x_24 = lean_box(x_17);
|
||||
x_25 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_simpLocation___lambda__2___boxed), 14, 5);
|
||||
lean_closure_set(x_25, 0, x_23);
|
||||
lean_closure_set(x_25, 1, x_1);
|
||||
lean_closure_set(x_25, 2, x_2);
|
||||
lean_closure_set(x_25, 3, x_24);
|
||||
lean_closure_set(x_25, 4, x_3);
|
||||
x_26 = l_Lean_Elab_Tactic_withMainContext___rarg(x_25, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13);
|
||||
return x_26;
|
||||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Elab_Tactic_simpLocation___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;
|
||||
x_13 = lean_unbox_usize(x_1);
|
||||
lean_dec(x_1);
|
||||
x_14 = lean_unbox_usize(x_2);
|
||||
lean_dec(x_2);
|
||||
x_15 = l_Array_mapMUnsafe_map___at_Lean_Elab_Tactic_simpLocation___spec__1(x_13, x_14, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12);
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_10);
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
return x_15;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_simpLocation___lambda__2___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:
|
||||
{
|
||||
uint8_t x_15; lean_object* x_16;
|
||||
x_15 = lean_unbox(x_4);
|
||||
lean_dec(x_4);
|
||||
x_16 = l_Lean_Elab_Tactic_simpLocation___lambda__2(x_1, x_2, x_3, x_15, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14);
|
||||
return x_16;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp___lambda__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, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_14 = lean_unsigned_to_nat(5u);
|
||||
x_15 = l_Lean_Syntax_getArg(x_1, x_14);
|
||||
x_16 = l_Lean_Elab_Tactic_expandOptLocation(x_15);
|
||||
lean_dec(x_15);
|
||||
x_17 = l_Lean_Elab_Tactic_simpLocation(x_2, x_4, x_3, x_16, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13);
|
||||
return x_17;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp(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:
|
||||
{
|
||||
|
|
@ -12172,7 +12117,7 @@ lean_inc(x_2);
|
|||
x_16 = l_Lean_Elab_Tactic_withMainContext___rarg(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10);
|
||||
if (lean_obj_tag(x_16) == 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; lean_object* x_24;
|
||||
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_ctor_get(x_16, 0);
|
||||
lean_inc(x_17);
|
||||
x_18 = lean_ctor_get(x_16, 1);
|
||||
|
|
@ -12185,52 +12130,17 @@ lean_inc(x_20);
|
|||
x_21 = lean_ctor_get(x_17, 2);
|
||||
lean_inc(x_21);
|
||||
lean_dec(x_17);
|
||||
x_22 = lean_unsigned_to_nat(5u);
|
||||
x_23 = l_Lean_Syntax_getArg(x_1, x_22);
|
||||
lean_dec(x_1);
|
||||
x_24 = l_Lean_Elab_Tactic_expandOptLocation(x_23);
|
||||
lean_dec(x_23);
|
||||
if (lean_obj_tag(x_24) == 0)
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26;
|
||||
x_25 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_evalSimp___lambda__1___boxed), 12, 3);
|
||||
lean_closure_set(x_25, 0, x_19);
|
||||
lean_closure_set(x_25, 1, x_20);
|
||||
lean_closure_set(x_25, 2, x_21);
|
||||
x_26 = l_Lean_Elab_Tactic_withMainContext___rarg(x_25, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_18);
|
||||
return x_26;
|
||||
x_22 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_evalSimp___lambda__1___boxed), 13, 3);
|
||||
lean_closure_set(x_22, 0, x_1);
|
||||
lean_closure_set(x_22, 1, x_19);
|
||||
lean_closure_set(x_22, 2, x_21);
|
||||
x_23 = l_Lean_Elab_Tactic_Simp_DischargeWrapper_with___rarg(x_20, x_22, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_18);
|
||||
lean_dec(x_20);
|
||||
return x_23;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_27; uint8_t x_28; lean_object* x_29; size_t 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;
|
||||
x_27 = lean_ctor_get(x_24, 0);
|
||||
lean_inc(x_27);
|
||||
x_28 = lean_ctor_get_uint8(x_24, sizeof(void*)*1);
|
||||
lean_dec(x_24);
|
||||
x_29 = lean_array_get_size(x_27);
|
||||
x_30 = lean_usize_of_nat(x_29);
|
||||
lean_dec(x_29);
|
||||
x_31 = x_27;
|
||||
x_32 = lean_box_usize(x_30);
|
||||
x_33 = l_Lean_Elab_Tactic_evalSimp___boxed__const__1;
|
||||
x_34 = lean_alloc_closure((void*)(l_Array_mapMUnsafe_map___at_Lean_Elab_Tactic_evalSimp___spec__1___boxed), 12, 3);
|
||||
lean_closure_set(x_34, 0, x_32);
|
||||
lean_closure_set(x_34, 1, x_33);
|
||||
lean_closure_set(x_34, 2, x_31);
|
||||
x_35 = lean_box(x_28);
|
||||
x_36 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_evalSimp___lambda__2___boxed), 14, 5);
|
||||
lean_closure_set(x_36, 0, x_34);
|
||||
lean_closure_set(x_36, 1, x_19);
|
||||
lean_closure_set(x_36, 2, x_20);
|
||||
lean_closure_set(x_36, 3, x_35);
|
||||
lean_closure_set(x_36, 4, x_21);
|
||||
x_37 = l_Lean_Elab_Tactic_withMainContext___rarg(x_36, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_18);
|
||||
return x_37;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_38;
|
||||
uint8_t x_24;
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
|
|
@ -12240,64 +12150,34 @@ lean_dec(x_4);
|
|||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_38 = !lean_is_exclusive(x_16);
|
||||
if (x_38 == 0)
|
||||
x_24 = !lean_is_exclusive(x_16);
|
||||
if (x_24 == 0)
|
||||
{
|
||||
return x_16;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_39; lean_object* x_40; lean_object* x_41;
|
||||
x_39 = lean_ctor_get(x_16, 0);
|
||||
x_40 = lean_ctor_get(x_16, 1);
|
||||
lean_inc(x_40);
|
||||
lean_inc(x_39);
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_16, 0);
|
||||
x_26 = lean_ctor_get(x_16, 1);
|
||||
lean_inc(x_26);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_16);
|
||||
x_41 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_41, 0, x_39);
|
||||
lean_ctor_set(x_41, 1, x_40);
|
||||
return x_41;
|
||||
x_27 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_25);
|
||||
lean_ctor_set(x_27, 1, x_26);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Elab_Tactic_evalSimp___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) {
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp___lambda__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_object* x_13) {
|
||||
_start:
|
||||
{
|
||||
size_t x_13; size_t x_14; lean_object* x_15;
|
||||
x_13 = lean_unbox_usize(x_1);
|
||||
lean_object* x_14;
|
||||
x_14 = l_Lean_Elab_Tactic_evalSimp___lambda__1(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);
|
||||
lean_dec(x_1);
|
||||
x_14 = lean_unbox_usize(x_2);
|
||||
lean_dec(x_2);
|
||||
x_15 = l_Array_mapMUnsafe_map___at_Lean_Elab_Tactic_evalSimp___spec__1(x_13, x_14, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12);
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_10);
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
return x_15;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp___lambda__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:
|
||||
{
|
||||
lean_object* x_13;
|
||||
x_13 = l_Lean_Elab_Tactic_evalSimp___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12);
|
||||
lean_dec(x_2);
|
||||
return x_13;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSimp___lambda__2___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:
|
||||
{
|
||||
uint8_t x_15; lean_object* x_16;
|
||||
x_15 = lean_unbox(x_4);
|
||||
lean_dec(x_4);
|
||||
x_16 = l_Lean_Elab_Tactic_evalSimp___lambda__2(x_1, x_2, x_3, x_15, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14);
|
||||
lean_dec(x_3);
|
||||
return x_16;
|
||||
return x_14;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalSimp___closed__1() {
|
||||
|
|
@ -12829,8 +12709,8 @@ l_Lean_Elab_Tactic_mkSimpContext___closed__1 = _init_l_Lean_Elab_Tactic_mkSimpCo
|
|||
lean_mark_persistent(l_Lean_Elab_Tactic_mkSimpContext___closed__1);
|
||||
l_Lean_Elab_Tactic_mkSimpContext___closed__2 = _init_l_Lean_Elab_Tactic_mkSimpContext___closed__2();
|
||||
lean_mark_persistent(l_Lean_Elab_Tactic_mkSimpContext___closed__2);
|
||||
l_Lean_Elab_Tactic_evalSimp___boxed__const__1 = _init_l_Lean_Elab_Tactic_evalSimp___boxed__const__1();
|
||||
lean_mark_persistent(l_Lean_Elab_Tactic_evalSimp___boxed__const__1);
|
||||
l_Lean_Elab_Tactic_simpLocation___boxed__const__1 = _init_l_Lean_Elab_Tactic_simpLocation___boxed__const__1();
|
||||
lean_mark_persistent(l_Lean_Elab_Tactic_simpLocation___boxed__const__1);
|
||||
l___regBuiltin_Lean_Elab_Tactic_evalSimp___closed__1 = _init_l___regBuiltin_Lean_Elab_Tactic_evalSimp___closed__1();
|
||||
lean_mark_persistent(l___regBuiltin_Lean_Elab_Tactic_evalSimp___closed__1);
|
||||
l___regBuiltin_Lean_Elab_Tactic_evalSimp___closed__2 = _init_l___regBuiltin_Lean_Elab_Tactic_evalSimp___closed__2();
|
||||
|
|
|
|||
2
stage0/stdlib/Lean/Elab/Tactic/Split.c
generated
2
stage0/stdlib/Lean/Elab/Tactic/Split.c
generated
|
|
@ -1095,7 +1095,7 @@ static lean_object* _init_l_Lean_Elab_Tactic_evalSplit___closed__1() {
|
|||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
x_1 = lean_mk_string("'split' tatic, term to split is not supported yet");
|
||||
x_1 = lean_mk_string("'split' tactic, term to split is not supported yet");
|
||||
return x_1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
2051
stage0/stdlib/Lean/Elab/Term.c
generated
2051
stage0/stdlib/Lean/Elab/Term.c
generated
File diff suppressed because it is too large
Load diff
605
stage0/stdlib/Lean/Elab/Util.c
generated
605
stage0/stdlib/Lean/Elab/Util.c
generated
|
|
@ -46,6 +46,7 @@ LEAN_EXPORT lean_object* l_Lean_Elab_macroAttribute___lambda__4___boxed(lean_obj
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___rarg___lambda__12(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_id___rarg___boxed(lean_object*);
|
||||
lean_object* lean_st_ref_get(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__2;
|
||||
static lean_object* l_Lean_Elab_macroAttribute___closed__9;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___rarg___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
uint8_t lean_name_eq(lean_object*, lean_object*);
|
||||
|
|
@ -104,11 +105,12 @@ LEAN_EXPORT lean_object* l_Lean_Elab_macroAttribute___lambda__5___boxed(lean_obj
|
|||
static lean_object* l_Lean_Elab_expandOptNamedPrio___closed__7;
|
||||
LEAN_EXPORT lean_object* l_List_forIn_loop___at_Lean_Elab_expandMacroImpl_x3f___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
uint8_t l_Lean_Option_get___at_Lean_ppExpr___spec__1(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753_(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_665_(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_235_(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746_(lean_object*);
|
||||
lean_object* l_Lean_throwError___at_Lean_registerInitAttrUnsafe___spec__3(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___rarg___lambda__14(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__3;
|
||||
LEAN_EXPORT lean_object* l_Lean_Syntax_prettyPrint(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_mkUnusedBaseName_loop(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_List_forM___at_Lean_Elab_liftMacroM___spec__2___rarg___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -124,7 +126,6 @@ LEAN_EXPORT lean_object* l_List_forM___at_Lean_Elab_liftMacroM___spec__2(lean_ob
|
|||
static lean_object* l_Lean_Elab_expandOptNamedPrio___closed__3;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_checkSyntaxNodeKindAtNamespaces___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_instMonadMacroAdapter___rarg(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__2;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_addMacroStack(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_mkElabAttribute___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_mkMacroAttributeUnsafe___closed__9;
|
||||
|
|
@ -178,7 +179,6 @@ LEAN_EXPORT lean_object* l_Lean_Elab_evalSyntaxConstant(lean_object*, lean_objec
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_checkSyntaxNodeKindAtNamespaces___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_pp_macroStack;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_adaptMacro___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__1;
|
||||
lean_object* l_Lean_throwError___rarg(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_macroAttribute___lambda__8___boxed(lean_object*);
|
||||
static lean_object* l_Lean_Elab_getBetterRef___closed__1;
|
||||
|
|
@ -196,7 +196,6 @@ static lean_object* l_Lean_Elab_expandOptNamedPrio___closed__2;
|
|||
uint8_t l_Lean_Syntax_isOfKind(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_expandOptNamedPrio___boxed(lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_expandOptNamedPrio___closed__8;
|
||||
static lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__3;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_checkSyntaxNodeKind___at_Lean_Elab_checkSyntaxNodeKindAtCurrentNamespaces___spec__2(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Init_Data_Option_Basic_0__beqOption____x40_Init_Data_Option_Basic___hyg_734____at_Lean_Elab_getBetterRef___spec__1___boxed(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_List_forM___at_Lean_Elab_liftMacroM___spec__2___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -208,6 +207,7 @@ LEAN_EXPORT lean_object* l_List_forM___at_Lean_Elab_liftMacroM___spec__2___rarg(
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_checkSyntaxNodeKind(lean_object*);
|
||||
lean_object* l_Lean_Syntax_getArg(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___rarg___lambda__13(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 lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__1;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_checkSyntaxNodeKindAtCurrentNamespaces(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_mkMacroAttributeUnsafe___closed__2;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_macroAttribute___lambda__7(lean_object*);
|
||||
|
|
@ -2048,7 +2048,7 @@ lean_dec(x_1);
|
|||
x_22 = !lean_is_exclusive(x_21);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
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_29; lean_object* x_30;
|
||||
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_29; lean_object* x_30; lean_object* x_31;
|
||||
x_23 = lean_ctor_get(x_21, 0);
|
||||
x_24 = lean_ctor_get(x_8, 0);
|
||||
lean_inc(x_24);
|
||||
|
|
@ -2056,94 +2056,138 @@ lean_dec(x_8);
|
|||
x_25 = lean_ctor_get(x_24, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_24);
|
||||
x_26 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
lean_ctor_set(x_26, 1, x_23);
|
||||
x_27 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
x_26 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_23);
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_25);
|
||||
lean_ctor_set(x_27, 1, x_26);
|
||||
x_28 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_28, 0, x_27);
|
||||
x_29 = lean_box(0);
|
||||
x_30 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_30, 0, x_28);
|
||||
lean_ctor_set(x_30, 1, x_29);
|
||||
lean_ctor_set(x_21, 0, x_30);
|
||||
x_29 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_29, 0, x_28);
|
||||
x_30 = lean_box(0);
|
||||
x_31 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
lean_ctor_set(x_21, 0, x_31);
|
||||
return x_21;
|
||||
}
|
||||
else
|
||||
{
|
||||
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;
|
||||
x_31 = lean_ctor_get(x_21, 0);
|
||||
x_32 = lean_ctor_get(x_21, 1);
|
||||
lean_inc(x_32);
|
||||
lean_inc(x_31);
|
||||
lean_dec(x_21);
|
||||
x_33 = lean_ctor_get(x_8, 0);
|
||||
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;
|
||||
x_32 = lean_ctor_get(x_21, 0);
|
||||
x_33 = lean_ctor_get(x_21, 1);
|
||||
lean_inc(x_33);
|
||||
lean_dec(x_8);
|
||||
x_34 = lean_ctor_get(x_33, 1);
|
||||
lean_inc(x_32);
|
||||
lean_dec(x_21);
|
||||
x_34 = lean_ctor_get(x_8, 0);
|
||||
lean_inc(x_34);
|
||||
lean_dec(x_33);
|
||||
x_35 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_35, 0, x_34);
|
||||
lean_ctor_set(x_35, 1, x_31);
|
||||
lean_dec(x_8);
|
||||
x_35 = lean_ctor_get(x_34, 1);
|
||||
lean_inc(x_35);
|
||||
lean_dec(x_34);
|
||||
x_36 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_36, 0, x_35);
|
||||
x_37 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
x_38 = lean_box(0);
|
||||
x_39 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_39, 0, x_37);
|
||||
lean_ctor_set(x_39, 1, x_38);
|
||||
x_40 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_40, 0, x_39);
|
||||
lean_ctor_set(x_40, 1, x_32);
|
||||
return x_40;
|
||||
lean_ctor_set(x_36, 0, x_32);
|
||||
x_37 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_37, 0, x_35);
|
||||
lean_ctor_set(x_37, 1, x_36);
|
||||
x_38 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_38, 0, x_37);
|
||||
x_39 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_39, 0, x_38);
|
||||
x_40 = lean_box(0);
|
||||
x_41 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_41, 0, x_39);
|
||||
lean_ctor_set(x_41, 1, x_40);
|
||||
x_42 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_42, 0, x_41);
|
||||
lean_ctor_set(x_42, 1, x_33);
|
||||
return x_42;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_41;
|
||||
lean_dec(x_8);
|
||||
x_41 = lean_ctor_get(x_21, 0);
|
||||
lean_inc(x_41);
|
||||
if (lean_obj_tag(x_41) == 0)
|
||||
{
|
||||
uint8_t x_42;
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_42 = !lean_is_exclusive(x_21);
|
||||
if (x_42 == 0)
|
||||
{
|
||||
lean_object* x_43;
|
||||
x_43 = lean_ctor_get(x_21, 0);
|
||||
lean_dec(x_43);
|
||||
lean_inc(x_43);
|
||||
if (lean_obj_tag(x_43) == 0)
|
||||
{
|
||||
uint8_t x_44;
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_44 = !lean_is_exclusive(x_21);
|
||||
if (x_44 == 0)
|
||||
{
|
||||
lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53;
|
||||
x_45 = lean_ctor_get(x_21, 0);
|
||||
lean_dec(x_45);
|
||||
x_46 = lean_ctor_get(x_8, 0);
|
||||
lean_inc(x_46);
|
||||
lean_dec(x_8);
|
||||
x_47 = lean_ctor_get(x_46, 1);
|
||||
lean_inc(x_47);
|
||||
lean_dec(x_46);
|
||||
x_48 = lean_alloc_ctor(0, 1, 0);
|
||||
lean_ctor_set(x_48, 0, x_43);
|
||||
x_49 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_49, 0, x_47);
|
||||
lean_ctor_set(x_49, 1, x_48);
|
||||
x_50 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_50, 0, x_49);
|
||||
x_51 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_51, 0, x_50);
|
||||
x_52 = lean_box(0);
|
||||
x_53 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_53, 0, x_51);
|
||||
lean_ctor_set(x_53, 1, x_52);
|
||||
lean_ctor_set_tag(x_21, 0);
|
||||
lean_ctor_set(x_21, 0, x_53);
|
||||
return x_21;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_44; lean_object* x_45;
|
||||
x_44 = lean_ctor_get(x_21, 1);
|
||||
lean_inc(x_44);
|
||||
lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63;
|
||||
x_54 = lean_ctor_get(x_21, 1);
|
||||
lean_inc(x_54);
|
||||
lean_dec(x_21);
|
||||
x_45 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_45, 0, x_41);
|
||||
lean_ctor_set(x_45, 1, x_44);
|
||||
return x_45;
|
||||
x_55 = lean_ctor_get(x_8, 0);
|
||||
lean_inc(x_55);
|
||||
lean_dec(x_8);
|
||||
x_56 = lean_ctor_get(x_55, 1);
|
||||
lean_inc(x_56);
|
||||
lean_dec(x_55);
|
||||
x_57 = lean_alloc_ctor(0, 1, 0);
|
||||
lean_ctor_set(x_57, 0, x_43);
|
||||
x_58 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_58, 0, x_56);
|
||||
lean_ctor_set(x_58, 1, x_57);
|
||||
x_59 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_59, 0, x_58);
|
||||
x_60 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_60, 0, x_59);
|
||||
x_61 = lean_box(0);
|
||||
x_62 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_62, 0, x_60);
|
||||
lean_ctor_set(x_62, 1, x_61);
|
||||
x_63 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_63, 0, x_62);
|
||||
lean_ctor_set(x_63, 1, x_54);
|
||||
return x_63;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_46;
|
||||
x_46 = lean_ctor_get(x_21, 1);
|
||||
lean_inc(x_46);
|
||||
lean_object* x_64;
|
||||
lean_dec(x_8);
|
||||
x_64 = lean_ctor_get(x_21, 1);
|
||||
lean_inc(x_64);
|
||||
lean_dec(x_21);
|
||||
lean_inc(x_2);
|
||||
{
|
||||
lean_object* _tmp_2 = x_9;
|
||||
lean_object* _tmp_3 = x_2;
|
||||
lean_object* _tmp_5 = x_46;
|
||||
lean_object* _tmp_5 = x_64;
|
||||
x_3 = _tmp_2;
|
||||
x_4 = _tmp_3;
|
||||
x_6 = _tmp_5;
|
||||
|
|
@ -2154,122 +2198,144 @@ goto _start;
|
|||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59;
|
||||
x_48 = lean_ctor_get(x_6, 0);
|
||||
x_49 = lean_ctor_get(x_6, 1);
|
||||
lean_inc(x_49);
|
||||
lean_inc(x_48);
|
||||
lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77;
|
||||
x_66 = lean_ctor_get(x_6, 0);
|
||||
x_67 = lean_ctor_get(x_6, 1);
|
||||
lean_inc(x_67);
|
||||
lean_inc(x_66);
|
||||
lean_dec(x_6);
|
||||
x_50 = lean_unsigned_to_nat(1u);
|
||||
x_51 = lean_nat_add(x_48, x_50);
|
||||
x_52 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_52, 0, x_51);
|
||||
lean_ctor_set(x_52, 1, x_49);
|
||||
x_53 = lean_ctor_get(x_5, 0);
|
||||
x_54 = lean_ctor_get(x_5, 1);
|
||||
x_55 = lean_ctor_get(x_5, 3);
|
||||
x_56 = lean_ctor_get(x_5, 4);
|
||||
x_57 = lean_ctor_get(x_5, 5);
|
||||
lean_inc(x_57);
|
||||
lean_inc(x_56);
|
||||
lean_inc(x_55);
|
||||
lean_inc(x_54);
|
||||
lean_inc(x_53);
|
||||
x_58 = lean_alloc_ctor(0, 6, 0);
|
||||
lean_ctor_set(x_58, 0, x_53);
|
||||
lean_ctor_set(x_58, 1, x_54);
|
||||
lean_ctor_set(x_58, 2, x_48);
|
||||
lean_ctor_set(x_58, 3, x_55);
|
||||
lean_ctor_set(x_58, 4, x_56);
|
||||
lean_ctor_set(x_58, 5, x_57);
|
||||
lean_inc(x_1);
|
||||
x_59 = lean_apply_3(x_10, x_1, x_58, x_52);
|
||||
if (lean_obj_tag(x_59) == 0)
|
||||
{
|
||||
lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70;
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_60 = lean_ctor_get(x_59, 0);
|
||||
lean_inc(x_60);
|
||||
x_61 = lean_ctor_get(x_59, 1);
|
||||
lean_inc(x_61);
|
||||
if (lean_is_exclusive(x_59)) {
|
||||
lean_ctor_release(x_59, 0);
|
||||
lean_ctor_release(x_59, 1);
|
||||
x_62 = x_59;
|
||||
} else {
|
||||
lean_dec_ref(x_59);
|
||||
x_62 = lean_box(0);
|
||||
}
|
||||
x_63 = lean_ctor_get(x_8, 0);
|
||||
lean_inc(x_63);
|
||||
lean_dec(x_8);
|
||||
x_64 = lean_ctor_get(x_63, 1);
|
||||
lean_inc(x_64);
|
||||
lean_dec(x_63);
|
||||
x_65 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_65, 0, x_64);
|
||||
lean_ctor_set(x_65, 1, x_60);
|
||||
x_66 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_66, 0, x_65);
|
||||
x_67 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_67, 0, x_66);
|
||||
x_68 = lean_box(0);
|
||||
x_69 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_69, 0, x_67);
|
||||
lean_ctor_set(x_69, 1, x_68);
|
||||
if (lean_is_scalar(x_62)) {
|
||||
x_70 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_70 = x_62;
|
||||
}
|
||||
x_68 = lean_unsigned_to_nat(1u);
|
||||
x_69 = lean_nat_add(x_66, x_68);
|
||||
x_70 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_70, 0, x_69);
|
||||
lean_ctor_set(x_70, 1, x_61);
|
||||
return x_70;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_71;
|
||||
lean_dec(x_8);
|
||||
x_71 = lean_ctor_get(x_59, 0);
|
||||
lean_ctor_set(x_70, 1, x_67);
|
||||
x_71 = lean_ctor_get(x_5, 0);
|
||||
x_72 = lean_ctor_get(x_5, 1);
|
||||
x_73 = lean_ctor_get(x_5, 3);
|
||||
x_74 = lean_ctor_get(x_5, 4);
|
||||
x_75 = lean_ctor_get(x_5, 5);
|
||||
lean_inc(x_75);
|
||||
lean_inc(x_74);
|
||||
lean_inc(x_73);
|
||||
lean_inc(x_72);
|
||||
lean_inc(x_71);
|
||||
if (lean_obj_tag(x_71) == 0)
|
||||
x_76 = lean_alloc_ctor(0, 6, 0);
|
||||
lean_ctor_set(x_76, 0, x_71);
|
||||
lean_ctor_set(x_76, 1, x_72);
|
||||
lean_ctor_set(x_76, 2, x_66);
|
||||
lean_ctor_set(x_76, 3, x_73);
|
||||
lean_ctor_set(x_76, 4, x_74);
|
||||
lean_ctor_set(x_76, 5, x_75);
|
||||
lean_inc(x_1);
|
||||
x_77 = lean_apply_3(x_10, x_1, x_76, x_70);
|
||||
if (lean_obj_tag(x_77) == 0)
|
||||
{
|
||||
lean_object* x_72; lean_object* x_73; lean_object* x_74;
|
||||
lean_object* 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_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89;
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_72 = lean_ctor_get(x_59, 1);
|
||||
lean_inc(x_72);
|
||||
if (lean_is_exclusive(x_59)) {
|
||||
lean_ctor_release(x_59, 0);
|
||||
lean_ctor_release(x_59, 1);
|
||||
x_73 = x_59;
|
||||
x_78 = lean_ctor_get(x_77, 0);
|
||||
lean_inc(x_78);
|
||||
x_79 = lean_ctor_get(x_77, 1);
|
||||
lean_inc(x_79);
|
||||
if (lean_is_exclusive(x_77)) {
|
||||
lean_ctor_release(x_77, 0);
|
||||
lean_ctor_release(x_77, 1);
|
||||
x_80 = x_77;
|
||||
} else {
|
||||
lean_dec_ref(x_59);
|
||||
x_73 = lean_box(0);
|
||||
lean_dec_ref(x_77);
|
||||
x_80 = lean_box(0);
|
||||
}
|
||||
if (lean_is_scalar(x_73)) {
|
||||
x_74 = lean_alloc_ctor(1, 2, 0);
|
||||
x_81 = lean_ctor_get(x_8, 0);
|
||||
lean_inc(x_81);
|
||||
lean_dec(x_8);
|
||||
x_82 = lean_ctor_get(x_81, 1);
|
||||
lean_inc(x_82);
|
||||
lean_dec(x_81);
|
||||
x_83 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_83, 0, x_78);
|
||||
x_84 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_84, 0, x_82);
|
||||
lean_ctor_set(x_84, 1, x_83);
|
||||
x_85 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_85, 0, x_84);
|
||||
x_86 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_86, 0, x_85);
|
||||
x_87 = lean_box(0);
|
||||
x_88 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_88, 0, x_86);
|
||||
lean_ctor_set(x_88, 1, x_87);
|
||||
if (lean_is_scalar(x_80)) {
|
||||
x_89 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_74 = x_73;
|
||||
x_89 = x_80;
|
||||
}
|
||||
lean_ctor_set(x_74, 0, x_71);
|
||||
lean_ctor_set(x_74, 1, x_72);
|
||||
return x_74;
|
||||
lean_ctor_set(x_89, 0, x_88);
|
||||
lean_ctor_set(x_89, 1, x_79);
|
||||
return x_89;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_75;
|
||||
x_75 = lean_ctor_get(x_59, 1);
|
||||
lean_inc(x_75);
|
||||
lean_dec(x_59);
|
||||
lean_object* x_90;
|
||||
x_90 = lean_ctor_get(x_77, 0);
|
||||
lean_inc(x_90);
|
||||
if (lean_obj_tag(x_90) == 0)
|
||||
{
|
||||
lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101;
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_91 = lean_ctor_get(x_77, 1);
|
||||
lean_inc(x_91);
|
||||
if (lean_is_exclusive(x_77)) {
|
||||
lean_ctor_release(x_77, 0);
|
||||
lean_ctor_release(x_77, 1);
|
||||
x_92 = x_77;
|
||||
} else {
|
||||
lean_dec_ref(x_77);
|
||||
x_92 = lean_box(0);
|
||||
}
|
||||
x_93 = lean_ctor_get(x_8, 0);
|
||||
lean_inc(x_93);
|
||||
lean_dec(x_8);
|
||||
x_94 = lean_ctor_get(x_93, 1);
|
||||
lean_inc(x_94);
|
||||
lean_dec(x_93);
|
||||
x_95 = lean_alloc_ctor(0, 1, 0);
|
||||
lean_ctor_set(x_95, 0, x_90);
|
||||
x_96 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_96, 0, x_94);
|
||||
lean_ctor_set(x_96, 1, x_95);
|
||||
x_97 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_97, 0, x_96);
|
||||
x_98 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_98, 0, x_97);
|
||||
x_99 = lean_box(0);
|
||||
x_100 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_100, 0, x_98);
|
||||
lean_ctor_set(x_100, 1, x_99);
|
||||
if (lean_is_scalar(x_92)) {
|
||||
x_101 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_101 = x_92;
|
||||
lean_ctor_set_tag(x_101, 0);
|
||||
}
|
||||
lean_ctor_set(x_101, 0, x_100);
|
||||
lean_ctor_set(x_101, 1, x_91);
|
||||
return x_101;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_102;
|
||||
lean_dec(x_8);
|
||||
x_102 = lean_ctor_get(x_77, 1);
|
||||
lean_inc(x_102);
|
||||
lean_dec(x_77);
|
||||
lean_inc(x_2);
|
||||
{
|
||||
lean_object* _tmp_2 = x_9;
|
||||
lean_object* _tmp_3 = x_2;
|
||||
lean_object* _tmp_5 = x_75;
|
||||
lean_object* _tmp_5 = x_102;
|
||||
x_3 = _tmp_2;
|
||||
x_4 = _tmp_3;
|
||||
x_6 = _tmp_5;
|
||||
|
|
@ -2306,7 +2372,7 @@ return x_3;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_expandMacroImpl_x3f(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_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);
|
||||
x_5 = l_Lean_Syntax_getKind(x_2);
|
||||
x_6 = l_Lean_Elab_macroAttribute;
|
||||
|
|
@ -2314,9 +2380,6 @@ x_7 = l_Lean_KeyedDeclsAttribute_getEntries___rarg(x_6, x_1, x_5);
|
|||
x_8 = lean_box(0);
|
||||
x_9 = l_Lean_Elab_expandMacroImpl_x3f___closed__1;
|
||||
x_10 = l_List_forIn_loop___at_Lean_Elab_expandMacroImpl_x3f___spec__1(x_2, x_9, x_7, x_9, x_3, x_4);
|
||||
if (lean_obj_tag(x_10) == 0)
|
||||
{
|
||||
lean_object* x_11; lean_object* x_12;
|
||||
x_11 = lean_ctor_get(x_10, 0);
|
||||
lean_inc(x_11);
|
||||
x_12 = lean_ctor_get(x_11, 0);
|
||||
|
|
@ -2377,29 +2440,6 @@ return x_22;
|
|||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_23;
|
||||
x_23 = !lean_is_exclusive(x_10);
|
||||
if (x_23 == 0)
|
||||
{
|
||||
return x_10;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_24; lean_object* x_25; lean_object* x_26;
|
||||
x_24 = lean_ctor_get(x_10, 0);
|
||||
x_25 = lean_ctor_get(x_10, 1);
|
||||
lean_inc(x_25);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_10);
|
||||
x_26 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_26, 0, x_24);
|
||||
lean_ctor_set(x_26, 1, x_25);
|
||||
return x_26;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_List_forIn_loop___at_Lean_Elab_expandMacroImpl_x3f___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) {
|
||||
_start:
|
||||
|
|
@ -2643,11 +2683,8 @@ return x_2;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_5;
|
||||
lean_object* x_5; lean_object* x_6;
|
||||
x_5 = l_Lean_Elab_expandMacroImpl_x3f(x_1, x_2, x_3, x_4);
|
||||
if (lean_obj_tag(x_5) == 0)
|
||||
{
|
||||
lean_object* x_6;
|
||||
x_6 = lean_ctor_get(x_5, 0);
|
||||
lean_inc(x_6);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
|
|
@ -2682,89 +2719,131 @@ uint8_t x_13;
|
|||
x_13 = !lean_is_exclusive(x_6);
|
||||
if (x_13 == 0)
|
||||
{
|
||||
uint8_t x_14;
|
||||
x_14 = !lean_is_exclusive(x_5);
|
||||
if (x_14 == 0)
|
||||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_ctor_get(x_6, 0);
|
||||
x_15 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_14);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_ctor_get(x_6, 0);
|
||||
x_16 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
uint8_t x_16;
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_17);
|
||||
lean_free_object(x_6);
|
||||
x_16 = !lean_is_exclusive(x_5);
|
||||
if (x_16 == 0)
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18;
|
||||
x_17 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_17);
|
||||
x_18 = lean_box(0);
|
||||
lean_ctor_set(x_5, 0, x_18);
|
||||
return x_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_18 = lean_ctor_get(x_6, 0);
|
||||
lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_19 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_5);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
lean_ctor_set(x_6, 0, x_20);
|
||||
x_20 = lean_box(0);
|
||||
x_21 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_21, 0, x_6);
|
||||
lean_ctor_set(x_21, 0, x_20);
|
||||
lean_ctor_set(x_21, 1, x_19);
|
||||
return x_21;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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_22 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_6);
|
||||
x_23 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_23);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_24 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_24 = lean_box(0);
|
||||
uint8_t x_22;
|
||||
x_22 = !lean_is_exclusive(x_5);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_5, 0);
|
||||
lean_dec(x_23);
|
||||
x_24 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_24);
|
||||
return x_5;
|
||||
}
|
||||
x_25 = lean_ctor_get(x_22, 1);
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_22);
|
||||
x_26 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
if (lean_is_scalar(x_24)) {
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_27 = x_24;
|
||||
}
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
lean_ctor_set(x_27, 1, x_23);
|
||||
lean_dec(x_5);
|
||||
x_26 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_15);
|
||||
lean_ctor_set(x_6, 0, x_26);
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_6);
|
||||
lean_ctor_set(x_27, 1, x_25);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_5);
|
||||
if (x_28 == 0)
|
||||
lean_object* x_28; lean_object* x_29;
|
||||
x_28 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_6);
|
||||
x_29 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_28);
|
||||
if (lean_obj_tag(x_29) == 0)
|
||||
{
|
||||
return x_5;
|
||||
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33;
|
||||
lean_dec(x_29);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_31 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_31 = lean_box(0);
|
||||
}
|
||||
x_32 = lean_box(0);
|
||||
if (lean_is_scalar(x_31)) {
|
||||
x_33 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_33 = x_31;
|
||||
}
|
||||
lean_ctor_set(x_33, 0, x_32);
|
||||
lean_ctor_set(x_33, 1, x_30);
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
x_29 = lean_ctor_get(x_5, 0);
|
||||
x_30 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_5);
|
||||
x_31 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_34 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_34);
|
||||
if (lean_is_exclusive(x_5)) {
|
||||
lean_ctor_release(x_5, 0);
|
||||
lean_ctor_release(x_5, 1);
|
||||
x_35 = x_5;
|
||||
} else {
|
||||
lean_dec_ref(x_5);
|
||||
x_35 = lean_box(0);
|
||||
}
|
||||
x_36 = lean_ctor_get(x_29, 0);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_29);
|
||||
x_37 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
if (lean_is_scalar(x_35)) {
|
||||
x_38 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_38 = x_35;
|
||||
}
|
||||
lean_ctor_set(x_38, 0, x_37);
|
||||
lean_ctor_set(x_38, 1, x_34);
|
||||
return x_38;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3481,7 +3560,7 @@ return x_25;
|
|||
}
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__1() {
|
||||
static lean_object* _init_l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__1() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2; lean_object* x_3;
|
||||
|
|
@ -3491,7 +3570,7 @@ x_3 = lean_name_mk_string(x_1, x_2);
|
|||
return x_3;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__2() {
|
||||
static lean_object* _init_l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__2() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
|
|
@ -3499,21 +3578,21 @@ x_1 = lean_mk_string("step");
|
|||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__3() {
|
||||
static lean_object* _init_l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__3() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2; lean_object* x_3;
|
||||
x_1 = l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__1;
|
||||
x_2 = l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__2;
|
||||
x_1 = l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__1;
|
||||
x_2 = l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__2;
|
||||
x_3 = lean_name_mk_string(x_1, x_2);
|
||||
return x_3;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746_(lean_object* x_1) {
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753_(lean_object* x_1) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_2; lean_object* x_3;
|
||||
x_2 = l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__1;
|
||||
x_2 = l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__1;
|
||||
x_3 = l_Lean_registerTraceClass(x_2, x_1);
|
||||
if (lean_obj_tag(x_3) == 0)
|
||||
{
|
||||
|
|
@ -3521,7 +3600,7 @@ lean_object* x_4; lean_object* x_5; lean_object* x_6;
|
|||
x_4 = lean_ctor_get(x_3, 1);
|
||||
lean_inc(x_4);
|
||||
lean_dec(x_3);
|
||||
x_5 = l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__3;
|
||||
x_5 = l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__3;
|
||||
x_6 = l_Lean_registerTraceClass(x_5, x_4);
|
||||
return x_6;
|
||||
}
|
||||
|
|
@ -3721,13 +3800,13 @@ lean_mark_persistent(l_Lean_Elab_macroAttribute);
|
|||
lean_dec_ref(res);
|
||||
l_Lean_Elab_expandMacroImpl_x3f___closed__1 = _init_l_Lean_Elab_expandMacroImpl_x3f___closed__1();
|
||||
lean_mark_persistent(l_Lean_Elab_expandMacroImpl_x3f___closed__1);
|
||||
l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__1 = _init_l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__1();
|
||||
lean_mark_persistent(l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__1);
|
||||
l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__2 = _init_l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__2();
|
||||
lean_mark_persistent(l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__2);
|
||||
l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__3 = _init_l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__3();
|
||||
lean_mark_persistent(l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746____closed__3);
|
||||
res = l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1746_(lean_io_mk_world());
|
||||
l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__1 = _init_l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__1();
|
||||
lean_mark_persistent(l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__1);
|
||||
l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__2 = _init_l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__2();
|
||||
lean_mark_persistent(l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__2);
|
||||
l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__3 = _init_l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__3();
|
||||
lean_mark_persistent(l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753____closed__3);
|
||||
res = l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1753_(lean_io_mk_world());
|
||||
if (lean_io_result_is_error(res)) return res;
|
||||
lean_dec_ref(res);
|
||||
return lean_io_result_mk_ok(lean_box(0));
|
||||
|
|
|
|||
11270
stage0/stdlib/Lean/Meta/ExprDefEq.c
generated
11270
stage0/stdlib/Lean/Meta/ExprDefEq.c
generated
File diff suppressed because it is too large
Load diff
12
stage0/stdlib/Lean/Meta/IndPredBelow.c
generated
12
stage0/stdlib/Lean/Meta/IndPredBelow.c
generated
|
|
@ -34,7 +34,6 @@ lean_object* l_Lean_registerTraceClass(lean_object*, lean_object*);
|
|||
LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Meta_IndPredBelow_mkConstructor___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_stringToMessageData(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at_Lean_Meta_IndPredBelow_backwardsChaining___spec__4___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_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Meta_IndPredBelow_mkBelowMatcher_convertToBelow___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_IndPredBelow_mkCtorType_copyVarName(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* lean_mk_empty_array_with_capacity(lean_object*);
|
||||
|
|
@ -477,6 +476,7 @@ static lean_object* l_Array_mapIdxM_map___at_Lean_Meta_IndPredBelow_mkBelowMatch
|
|||
extern lean_object* l_Lean_instInhabitedInductiveVal;
|
||||
static lean_object* l_Lean_getConstInfoCtor___at_Lean_Meta_IndPredBelow_mkConstructor___spec__1___closed__2;
|
||||
lean_object* l_List_mapTRAux___at_Lean_Meta_substCore___spec__7(lean_object*, lean_object*);
|
||||
lean_object* l_Lean_getConstInfoInduct___at___private_Lean_Meta_ExprDefEq_0__Lean_Meta_isDefEqEtaStruct___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Meta_IndPredBelow_mkBrecOnDecl_mkIH___closed__2;
|
||||
extern lean_object* l_Lean_brecOnSuffix;
|
||||
static lean_object* l_Array_mapIdxM_map___at_Lean_Meta_IndPredBelow_mkBelowMatcher___spec__3___lambda__1___closed__2;
|
||||
|
|
@ -1383,7 +1383,7 @@ x_12 = lean_array_uget(x_3, x_2);
|
|||
x_13 = lean_unsigned_to_nat(0u);
|
||||
x_14 = lean_array_uset(x_3, x_2, x_13);
|
||||
x_15 = x_12;
|
||||
x_16 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(x_15, x_4, x_5, x_6, x_7, x_8);
|
||||
x_16 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_ExprDefEq_0__Lean_Meta_isDefEqEtaStruct___spec__1(x_15, x_4, x_5, x_6, x_7, x_8);
|
||||
if (lean_obj_tag(x_16) == 0)
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18; size_t x_19; size_t x_20; lean_object* x_21; lean_object* x_22;
|
||||
|
|
@ -1693,7 +1693,7 @@ LEAN_EXPORT lean_object* l_Lean_Meta_IndPredBelow_mkContext(lean_object* x_1, le
|
|||
_start:
|
||||
{
|
||||
lean_object* x_7;
|
||||
x_7 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(x_1, x_2, x_3, x_4, x_5, x_6);
|
||||
x_7 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_ExprDefEq_0__Lean_Meta_isDefEqEtaStruct___spec__1(x_1, x_2, x_3, x_4, x_5, 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; lean_object* x_13; lean_object* x_14; size_t x_15; size_t 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;
|
||||
|
|
@ -12351,7 +12351,7 @@ lean_inc(x_16);
|
|||
lean_dec(x_14);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
x_18 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(x_17, x_2, x_3, x_4, x_5, x_16);
|
||||
x_18 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_ExprDefEq_0__Lean_Meta_isDefEqEtaStruct___spec__1(x_17, x_2, x_3, x_4, x_5, x_16);
|
||||
if (lean_obj_tag(x_18) == 0)
|
||||
{
|
||||
lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23;
|
||||
|
|
@ -12490,7 +12490,7 @@ lean_object* x_17; lean_object* x_18;
|
|||
lean_dec(x_5);
|
||||
x_17 = l_Lean_Expr_constName_x21(x_3);
|
||||
lean_inc(x_17);
|
||||
x_18 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(x_17, x_6, x_7, x_8, x_9, x_10);
|
||||
x_18 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_ExprDefEq_0__Lean_Meta_isDefEqEtaStruct___spec__1(x_17, x_6, x_7, x_8, x_9, x_10);
|
||||
if (lean_obj_tag(x_18) == 0)
|
||||
{
|
||||
uint8_t x_19;
|
||||
|
|
@ -22926,7 +22926,7 @@ x_31 = lean_ctor_get(x_7, 1);
|
|||
lean_inc(x_31);
|
||||
lean_dec(x_7);
|
||||
lean_inc(x_1);
|
||||
x_32 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(x_1, x_2, x_3, x_4, x_5, x_31);
|
||||
x_32 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_ExprDefEq_0__Lean_Meta_isDefEqEtaStruct___spec__1(x_1, x_2, x_3, x_4, x_5, x_31);
|
||||
if (lean_obj_tag(x_32) == 0)
|
||||
{
|
||||
lean_object* x_33; uint8_t x_34;
|
||||
|
|
|
|||
6
stage0/stdlib/Lean/Meta/Injective.c
generated
6
stage0/stdlib/Lean/Meta/Injective.c
generated
|
|
@ -21,7 +21,6 @@ lean_object* l_Lean_Expr_mvarId_x21(lean_object*);
|
|||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2___closed__4;
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__4;
|
||||
lean_object* l_Lean_stringToMessageData(lean_object*);
|
||||
lean_object* l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* lean_mk_empty_array_with_capacity(lean_object*);
|
||||
lean_object* l_Lean_Meta_mkForallFVars(lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_injTheoremFailureHeader___closed__4;
|
||||
|
|
@ -162,6 +161,7 @@ LEAN_EXPORT lean_object* l_Lean_Meta_genInjectivity;
|
|||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2___closed__1;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2___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 lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2___closed__2;
|
||||
lean_object* l_Lean_getConstInfoInduct___at___private_Lean_Meta_ExprDefEq_0__Lean_Meta_isDefEqEtaStruct___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___lambda__4___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_Meta_mkHEq(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_elimOptParam___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -5133,7 +5133,7 @@ if (x_22 == 0)
|
|||
{
|
||||
lean_object* x_23;
|
||||
lean_free_object(x_12);
|
||||
x_23 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(x_1, x_2, x_3, x_4, x_5, x_15);
|
||||
x_23 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_ExprDefEq_0__Lean_Meta_isDefEqEtaStruct___spec__1(x_1, x_2, x_3, x_4, x_5, x_15);
|
||||
if (lean_obj_tag(x_23) == 0)
|
||||
{
|
||||
lean_object* x_24; uint8_t x_25;
|
||||
|
|
@ -5327,7 +5327,7 @@ lean_dec(x_49);
|
|||
if (x_59 == 0)
|
||||
{
|
||||
lean_object* x_60;
|
||||
x_60 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(x_1, x_2, x_3, x_4, x_5, x_50);
|
||||
x_60 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_ExprDefEq_0__Lean_Meta_isDefEqEtaStruct___spec__1(x_1, x_2, x_3, x_4, x_5, x_50);
|
||||
if (lean_obj_tag(x_60) == 0)
|
||||
{
|
||||
lean_object* x_61; uint8_t x_62;
|
||||
|
|
|
|||
268
stage0/stdlib/Lean/Meta/RecursorInfo.c
generated
268
stage0/stdlib/Lean/Meta/RecursorInfo.c
generated
|
|
@ -26,7 +26,6 @@ static lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Meta_i
|
|||
uint8_t l_Array_anyMUnsafe_any___at_Lean_Meta_CheckAssignment_checkApp___spec__2(lean_object*, size_t, size_t);
|
||||
lean_object* l_Lean_stringToMessageData(lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____spec__5___lambda__2___boxed(lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Meta_Attribute_Recursor_getMajorPos___closed__13;
|
||||
lean_object* lean_mk_empty_array_with_capacity(lean_object*);
|
||||
|
|
@ -57,7 +56,7 @@ static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705_
|
|||
static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____lambda__2___closed__14;
|
||||
static lean_object* l_Lean_Meta_RecursorInfo_instToStringRecursorInfo___closed__6;
|
||||
static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____lambda__2___closed__5;
|
||||
LEAN_EXPORT lean_object* l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__3(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__3(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getProduceMotiveAndRecursive___spec__3___lambda__1(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_forallTelescopeReducing___at_Lean_Meta_getParamNames___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_registerParametricAttribute___at_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____spec__1___closed__4;
|
||||
|
|
@ -97,24 +96,19 @@ lean_object* lean_array_get_size(lean_object*);
|
|||
static lean_object* l_Lean_registerParametricAttribute___at_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____spec__1___closed__1;
|
||||
static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____closed__6;
|
||||
lean_object* lean_string_append(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__1;
|
||||
static lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____spec__5___closed__1;
|
||||
lean_object* l_List_range(lean_object*);
|
||||
lean_object* l_Lean_throwError___at_Lean_registerTagAttribute___spec__5(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_checkMotive___closed__4;
|
||||
LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getParamsPos___spec__1___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_setEnv___at_Lean_registerTagAttribute___spec__4(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Meta_Attribute_Recursor_getMajorPos___closed__3;
|
||||
static lean_object* l_Lean_Meta_RecursorInfo_instToStringRecursorInfo___closed__13;
|
||||
static lean_object* l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__2;
|
||||
lean_object* l_Lean_throwErrorAt___at_Lean_getAttrParamOptPrio___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__4(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Meta_recursorAttribute___closed__3;
|
||||
uint8_t lean_usize_dec_lt(size_t, size_t);
|
||||
LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Meta_Attribute_Recursor_getMajorPos___closed__5;
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___closed__1;
|
||||
static lean_object* l_List_toStringAux___at_Lean_Meta_RecursorInfo_instToStringRecursorInfo___spec__4___closed__1;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMotiveLevel___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -190,7 +184,6 @@ static lean_object* l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosD
|
|||
LEAN_EXPORT lean_object* l_Lean_registerParametricAttribute___at_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____spec__1___lambda__4___boxed(lean_object*);
|
||||
static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____lambda__2___closed__13;
|
||||
static lean_object* l_Lean_registerParametricAttribute___at_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____spec__1___lambda__7___closed__1;
|
||||
static lean_object* l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__4;
|
||||
static lean_object* l_Lean_Meta_Attribute_Recursor_getMajorPos___closed__1;
|
||||
static lean_object* l_Array_qpartition_loop___at_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____spec__4___closed__1;
|
||||
static lean_object* l_Lean_Meta_Attribute_Recursor_getMajorPos___closed__2;
|
||||
|
|
@ -202,7 +195,6 @@ lean_object* lean_array_get(lean_object*, lean_object*, lean_object*);
|
|||
lean_object* l_Lean_Expr_fvarId_x21(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_recursorAttribute___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Meta_recursorAttribute___lambda__1___closed__1;
|
||||
static lean_object* l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__3;
|
||||
static lean_object* l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__1;
|
||||
static lean_object* l_List_toString___at_Lean_Meta_RecursorInfo_instToStringRecursorInfo___spec__1___closed__3;
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_recursorAttribute___lambda__5___boxed(lean_object*);
|
||||
|
|
@ -253,6 +245,7 @@ static lean_object* l_Std_Range_forIn_loop___at___private_Lean_Meta_RecursorInfo
|
|||
static lean_object* l_Lean_Expr_withAppAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoAux___spec__3___closed__2;
|
||||
extern lean_object* l_Lean_instInhabitedExpr;
|
||||
LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getParamsPos___spec__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*);
|
||||
static lean_object* l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__4;
|
||||
LEAN_EXPORT lean_object* l_Lean_registerParametricAttribute___at_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____spec__1___lambda__4(lean_object*);
|
||||
static lean_object* l_Std_Range_forIn_loop___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getParamsPos___spec__2___closed__1;
|
||||
lean_object* l_Lean_registerBuiltinAttribute(lean_object*, lean_object*);
|
||||
|
|
@ -264,6 +257,7 @@ uint8_t l_Array_isEmpty___rarg(lean_object*);
|
|||
LEAN_EXPORT lean_object* l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getProduceMotiveAndRecursive(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_List_toStringAux___at_Lean_Meta_RecursorInfo_instToStringRecursorInfo___spec__8___closed__3;
|
||||
LEAN_EXPORT lean_object* l_List_toStringAux___at_Lean_Meta_RecursorInfo_instToStringRecursorInfo___spec__4(uint8_t, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_recursorAttribute___lambda__5(lean_object*);
|
||||
static lean_object* l_Lean_Meta_recursorAttribute___closed__11;
|
||||
static lean_object* l_Lean_Meta_recursorAttribute___lambda__3___closed__2;
|
||||
|
|
@ -304,8 +298,8 @@ LEAN_EXPORT lean_object* l_Lean_registerParametricAttribute___at_Lean_Meta_initF
|
|||
extern lean_object* l_Lean_Expr_FindImpl_initCache;
|
||||
LEAN_EXPORT lean_object* l_Lean_throwErrorAt___at_Lean_Meta_Attribute_Recursor_getMajorPos___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____lambda__2___closed__19;
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_List_redLength___rarg(lean_object*);
|
||||
static lean_object* l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__3;
|
||||
static lean_object* l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getProduceMotiveAndRecursive___closed__1;
|
||||
lean_object* l_Lean_Expr_getAppNumArgsAux(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_recursorAttribute___lambda__6(lean_object*);
|
||||
|
|
@ -313,6 +307,7 @@ static lean_object* l_Lean_Meta_Attribute_Recursor_getMajorPos___closed__6;
|
|||
static lean_object* l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosDepElim___closed__5;
|
||||
lean_object* l_Lean_Meta_getLocalDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
uint8_t lean_expr_eqv(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__3___boxed(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Expr_withAppAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoAux___spec__2(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*);
|
||||
uint8_t lean_nat_dec_le(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -320,7 +315,6 @@ LEAN_EXPORT lean_object* l_List_toStringAux___at_Lean_Meta_RecursorInfo_instToSt
|
|||
static lean_object* l_Lean_Meta_Attribute_Recursor_getMajorPos___closed__11;
|
||||
lean_object* l_Lean_Syntax_getKind(lean_object*);
|
||||
static lean_object* l_Lean_Meta_recursorAttribute___closed__4;
|
||||
LEAN_EXPORT lean_object* l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__5___boxed(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_RecursorInfo_firstIndexPos___boxed(lean_object*);
|
||||
static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____lambda__2___closed__4;
|
||||
LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getProduceMotiveAndRecursive___spec__3(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*);
|
||||
|
|
@ -339,7 +333,6 @@ LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at_Lean_Meta_initFn____x40_Lean_Met
|
|||
LEAN_EXPORT lean_object* l_Lean_Meta_recursorAttribute___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMotiveLevel___closed__2;
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_Attribute_Recursor_getMajorPos(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__5(lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____lambda__2___closed__17;
|
||||
static lean_object* l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getParamsPos___closed__1;
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosDepElim___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -404,9 +397,11 @@ LEAN_EXPORT lean_object* l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getUniv
|
|||
LEAN_EXPORT lean_object* l_Array_getIdx_x3f___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosDepElim___spec__1(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____spec__5___closed__2;
|
||||
lean_object* l_Lean_Syntax_getArg(lean_object*, lean_object*);
|
||||
lean_object* l_Lean_getConstInfoInduct___at___private_Lean_Meta_ExprDefEq_0__Lean_Meta_isDefEqEtaStruct___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
extern lean_object* l_Lean_brecOnSuffix;
|
||||
static lean_object* l_Lean_registerParametricAttribute___at_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____spec__1___lambda__6___closed__1;
|
||||
static lean_object* l_Lean_Expr_withAppAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoAux___spec__2___closed__1;
|
||||
LEAN_EXPORT lean_object* l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__2(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_registerParametricAttribute___at_Lean_Meta_initFn____x40_Lean_Meta_RecursorInfo___hyg_2705____spec__1(lean_object*, lean_object*);
|
||||
lean_object* l_Array_findIdx_x3f_loop___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_binSearchAux___at_Lean_Meta_getMajorPos_x3f___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -1613,169 +1608,7 @@ lean_dec(x_2);
|
|||
return x_4;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__2(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; lean_object* x_8; uint8_t x_9;
|
||||
x_7 = lean_ctor_get(x_4, 3);
|
||||
x_8 = l_Lean_addMessageContextFull___at_Lean_Meta_instAddMessageContextMetaM___spec__1(x_1, x_2, x_3, x_4, x_5, x_6);
|
||||
x_9 = !lean_is_exclusive(x_8);
|
||||
if (x_9 == 0)
|
||||
{
|
||||
lean_object* x_10; lean_object* x_11;
|
||||
x_10 = lean_ctor_get(x_8, 0);
|
||||
lean_inc(x_7);
|
||||
x_11 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_11, 0, x_7);
|
||||
lean_ctor_set(x_11, 1, x_10);
|
||||
lean_ctor_set_tag(x_8, 1);
|
||||
lean_ctor_set(x_8, 0, x_11);
|
||||
return x_8;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15;
|
||||
x_12 = lean_ctor_get(x_8, 0);
|
||||
x_13 = lean_ctor_get(x_8, 1);
|
||||
lean_inc(x_13);
|
||||
lean_inc(x_12);
|
||||
lean_dec(x_8);
|
||||
lean_inc(x_7);
|
||||
x_14 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_14, 0, x_7);
|
||||
lean_ctor_set(x_14, 1, x_12);
|
||||
x_15 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_15, 0, x_14);
|
||||
lean_ctor_set(x_15, 1, x_13);
|
||||
return x_15;
|
||||
}
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__1() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
x_1 = lean_mk_string("'");
|
||||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__2() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2;
|
||||
x_1 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__1;
|
||||
x_2 = l_Lean_stringToMessageData(x_1);
|
||||
return x_2;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__3() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
x_1 = lean_mk_string("' is not a inductive type");
|
||||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__4() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2;
|
||||
x_1 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__3;
|
||||
x_2 = l_Lean_stringToMessageData(x_1);
|
||||
return x_2;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__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) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_7;
|
||||
lean_inc(x_1);
|
||||
x_7 = l_Lean_getConstInfo___at_Lean_Meta_mkConstWithFreshMVarLevels___spec__1(x_1, x_2, x_3, x_4, x_5, x_6);
|
||||
if (lean_obj_tag(x_7) == 0)
|
||||
{
|
||||
lean_object* x_8;
|
||||
x_8 = lean_ctor_get(x_7, 0);
|
||||
lean_inc(x_8);
|
||||
if (lean_obj_tag(x_8) == 5)
|
||||
{
|
||||
uint8_t x_9;
|
||||
lean_dec(x_1);
|
||||
x_9 = !lean_is_exclusive(x_7);
|
||||
if (x_9 == 0)
|
||||
{
|
||||
lean_object* x_10; lean_object* x_11;
|
||||
x_10 = lean_ctor_get(x_7, 0);
|
||||
lean_dec(x_10);
|
||||
x_11 = lean_ctor_get(x_8, 0);
|
||||
lean_inc(x_11);
|
||||
lean_dec(x_8);
|
||||
lean_ctor_set(x_7, 0, x_11);
|
||||
return x_7;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_12; lean_object* x_13; lean_object* x_14;
|
||||
x_12 = lean_ctor_get(x_7, 1);
|
||||
lean_inc(x_12);
|
||||
lean_dec(x_7);
|
||||
x_13 = lean_ctor_get(x_8, 0);
|
||||
lean_inc(x_13);
|
||||
lean_dec(x_8);
|
||||
x_14 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_14, 0, x_13);
|
||||
lean_ctor_set(x_14, 1, x_12);
|
||||
return x_14;
|
||||
}
|
||||
}
|
||||
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_dec(x_8);
|
||||
x_15 = lean_ctor_get(x_7, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_7);
|
||||
x_16 = lean_box(0);
|
||||
x_17 = l_Lean_mkConst(x_1, x_16);
|
||||
x_18 = lean_alloc_ctor(2, 1, 0);
|
||||
lean_ctor_set(x_18, 0, x_17);
|
||||
x_19 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__2;
|
||||
x_20 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_20, 0, x_19);
|
||||
lean_ctor_set(x_20, 1, x_18);
|
||||
x_21 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__4;
|
||||
x_22 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_22, 0, x_20);
|
||||
lean_ctor_set(x_22, 1, x_21);
|
||||
x_23 = l_Lean_throwError___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__2(x_22, x_2, x_3, x_4, x_5, x_15);
|
||||
return x_23;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_24;
|
||||
lean_dec(x_1);
|
||||
x_24 = !lean_is_exclusive(x_7);
|
||||
if (x_24 == 0)
|
||||
{
|
||||
return x_7;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_7, 0);
|
||||
x_26 = lean_ctor_get(x_7, 1);
|
||||
lean_inc(x_26);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_7);
|
||||
x_27 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_25);
|
||||
lean_ctor_set(x_27, 1, x_26);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__3(lean_object* x_1, lean_object* x_2) {
|
||||
LEAN_EXPORT lean_object* l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(lean_object* x_1, lean_object* x_2) {
|
||||
_start:
|
||||
{
|
||||
if (lean_obj_tag(x_1) == 0)
|
||||
|
|
@ -1825,7 +1658,7 @@ goto _start;
|
|||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__4(lean_object* x_1, lean_object* x_2) {
|
||||
LEAN_EXPORT lean_object* l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__2(lean_object* x_1, lean_object* x_2) {
|
||||
_start:
|
||||
{
|
||||
if (lean_obj_tag(x_1) == 0)
|
||||
|
|
@ -1875,7 +1708,7 @@ goto _start;
|
|||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
|
||||
LEAN_EXPORT lean_object* l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
|
||||
_start:
|
||||
{
|
||||
if (lean_obj_tag(x_2) == 0)
|
||||
|
|
@ -1931,7 +1764,7 @@ _start:
|
|||
lean_object* x_8; lean_object* x_9;
|
||||
x_8 = l_Lean_RecursorVal_getInduct(x_2);
|
||||
lean_inc(x_8);
|
||||
x_9 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(x_8, x_3, x_4, x_5, x_6, x_7);
|
||||
x_9 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_ExprDefEq_0__Lean_Meta_isDefEqEtaStruct___spec__1(x_8, x_3, x_4, x_5, x_6, x_7);
|
||||
if (lean_obj_tag(x_9) == 0)
|
||||
{
|
||||
uint8_t x_10;
|
||||
|
|
@ -1951,7 +1784,7 @@ lean_dec(x_13);
|
|||
lean_inc(x_15);
|
||||
x_16 = l_List_range(x_15);
|
||||
x_17 = lean_box(0);
|
||||
x_18 = l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__3(x_16, x_17);
|
||||
x_18 = l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(x_16, x_17);
|
||||
x_19 = lean_ctor_get(x_2, 0);
|
||||
lean_inc(x_19);
|
||||
x_20 = lean_ctor_get(x_19, 1);
|
||||
|
|
@ -1972,12 +1805,12 @@ x_27 = lean_ctor_get(x_2, 2);
|
|||
lean_inc(x_27);
|
||||
lean_inc(x_27);
|
||||
x_28 = l_List_range(x_27);
|
||||
x_29 = l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__4(x_28, x_17);
|
||||
x_29 = l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__2(x_28, x_17);
|
||||
x_30 = lean_ctor_get(x_2, 3);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_30);
|
||||
x_31 = l_List_range(x_30);
|
||||
x_32 = l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__5(x_27, x_31, x_17);
|
||||
x_32 = l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__3(x_27, x_31, x_17);
|
||||
x_33 = lean_nat_add(x_30, x_27);
|
||||
lean_dec(x_27);
|
||||
lean_dec(x_30);
|
||||
|
|
@ -2054,7 +1887,7 @@ lean_dec(x_48);
|
|||
lean_inc(x_50);
|
||||
x_51 = l_List_range(x_50);
|
||||
x_52 = lean_box(0);
|
||||
x_53 = l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__3(x_51, x_52);
|
||||
x_53 = l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(x_51, x_52);
|
||||
x_54 = lean_ctor_get(x_2, 0);
|
||||
lean_inc(x_54);
|
||||
x_55 = lean_ctor_get(x_54, 1);
|
||||
|
|
@ -2075,12 +1908,12 @@ x_62 = lean_ctor_get(x_2, 2);
|
|||
lean_inc(x_62);
|
||||
lean_inc(x_62);
|
||||
x_63 = l_List_range(x_62);
|
||||
x_64 = l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__4(x_63, x_52);
|
||||
x_64 = l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__2(x_63, x_52);
|
||||
x_65 = lean_ctor_get(x_2, 3);
|
||||
lean_inc(x_65);
|
||||
lean_inc(x_65);
|
||||
x_66 = l_List_range(x_65);
|
||||
x_67 = l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__5(x_62, x_66, x_52);
|
||||
x_67 = l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__3(x_62, x_66, x_52);
|
||||
x_68 = lean_nat_add(x_65, x_62);
|
||||
lean_dec(x_62);
|
||||
lean_dec(x_65);
|
||||
|
|
@ -2170,35 +2003,11 @@ return x_85;
|
|||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__2___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) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_7;
|
||||
x_7 = l_Lean_throwError___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__2(x_1, x_2, x_3, x_4, x_5, x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
return x_7;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___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) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_7;
|
||||
x_7 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(x_1, x_2, x_3, x_4, x_5, x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
return x_7;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
|
||||
LEAN_EXPORT lean_object* l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_4;
|
||||
x_4 = l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__5(x_1, x_2, x_3);
|
||||
x_4 = l_List_mapTRAux___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__3(x_1, x_2, x_3);
|
||||
lean_dec(x_1);
|
||||
return x_4;
|
||||
}
|
||||
|
|
@ -2257,7 +2066,7 @@ static lean_object* _init_l_Lean_getConstInfoRec___at___private_Lean_Meta_Recurs
|
|||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
x_1 = lean_mk_string("' is not a recursor");
|
||||
x_1 = lean_mk_string("'");
|
||||
return x_1;
|
||||
}
|
||||
}
|
||||
|
|
@ -2270,6 +2079,23 @@ x_2 = l_Lean_stringToMessageData(x_1);
|
|||
return x_2;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__3() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
x_1 = lean_mk_string("' is not a recursor");
|
||||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__4() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2;
|
||||
x_1 = l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__3;
|
||||
x_2 = l_Lean_stringToMessageData(x_1);
|
||||
return x_2;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__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) {
|
||||
_start:
|
||||
{
|
||||
|
|
@ -2323,11 +2149,11 @@ x_16 = lean_box(0);
|
|||
x_17 = l_Lean_mkConst(x_1, x_16);
|
||||
x_18 = lean_alloc_ctor(2, 1, 0);
|
||||
lean_ctor_set(x_18, 0, x_17);
|
||||
x_19 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__2;
|
||||
x_19 = l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__2;
|
||||
x_20 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_20, 0, x_19);
|
||||
lean_ctor_set(x_20, 1, x_18);
|
||||
x_21 = l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__2;
|
||||
x_21 = l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__4;
|
||||
x_22 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_22, 0, x_20);
|
||||
lean_ctor_set(x_22, 1, x_21);
|
||||
|
|
@ -3099,7 +2925,7 @@ x_13 = l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosDepElim___lamb
|
|||
x_14 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_14, 0, x_13);
|
||||
lean_ctor_set(x_14, 1, x_12);
|
||||
x_15 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__2;
|
||||
x_15 = l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__2;
|
||||
x_16 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_16, 0, x_14);
|
||||
lean_ctor_set(x_16, 1, x_15);
|
||||
|
|
@ -4830,7 +4656,7 @@ lean_ctor_set(x_25, 0, x_12);
|
|||
x_26 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_26, 0, x_24);
|
||||
lean_ctor_set(x_26, 1, x_25);
|
||||
x_27 = l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__2;
|
||||
x_27 = l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__2;
|
||||
x_28 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_28, 0, x_26);
|
||||
lean_ctor_set(x_28, 1, x_27);
|
||||
|
|
@ -12043,18 +11869,14 @@ l_Lean_Meta_RecursorInfo_instToStringRecursorInfo___closed__17 = _init_l_Lean_Me
|
|||
lean_mark_persistent(l_Lean_Meta_RecursorInfo_instToStringRecursorInfo___closed__17);
|
||||
l_Lean_Meta_RecursorInfo_instToStringRecursorInfo___closed__18 = _init_l_Lean_Meta_RecursorInfo_instToStringRecursorInfo___closed__18();
|
||||
lean_mark_persistent(l_Lean_Meta_RecursorInfo_instToStringRecursorInfo___closed__18);
|
||||
l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__1 = _init_l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__1();
|
||||
lean_mark_persistent(l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__1);
|
||||
l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__2 = _init_l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__2();
|
||||
lean_mark_persistent(l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__2);
|
||||
l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__3 = _init_l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__3();
|
||||
lean_mark_persistent(l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__3);
|
||||
l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__4 = _init_l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__4();
|
||||
lean_mark_persistent(l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1___closed__4);
|
||||
l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__1 = _init_l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__1();
|
||||
lean_mark_persistent(l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__1);
|
||||
l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__2 = _init_l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__2();
|
||||
lean_mark_persistent(l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__2);
|
||||
l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__3 = _init_l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__3();
|
||||
lean_mark_persistent(l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__3);
|
||||
l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__4 = _init_l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__4();
|
||||
lean_mark_persistent(l_Lean_getConstInfoRec___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___spec__1___closed__4);
|
||||
l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___closed__1 = _init_l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___closed__1();
|
||||
lean_mark_persistent(l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_getMajorPosIfAuxRecursor_x3f___closed__1);
|
||||
l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_checkMotive___closed__1 = _init_l___private_Lean_Meta_RecursorInfo_0__Lean_Meta_checkMotive___closed__1();
|
||||
|
|
|
|||
806
stage0/stdlib/Lean/Meta/Tactic/Simp/Rewrite.c
generated
806
stage0/stdlib/Lean/Meta/Tactic/Simp/Rewrite.c
generated
|
|
@ -58,6 +58,7 @@ lean_object* l_Lean_Meta_isClass_x3f(lean_object*, lean_object*, lean_object*, l
|
|||
LEAN_EXPORT lean_object* l_Lean_Meta_Simp_rewrite___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Array_forInUnsafe_loop___at_Lean_Meta_Simp_synthesizeArgs___spec__1___closed__4;
|
||||
static lean_object* l___private_Lean_Meta_Tactic_Simp_Rewrite_0__Lean_Meta_Simp_tryLemmaCore_go___lambda__3___closed__10;
|
||||
static lean_object* l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__15;
|
||||
LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Meta_Tactic_Simp_Rewrite_0__Lean_Meta_Simp_tryLemmaCore___spec__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_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_Rewrite_0__Lean_Meta_Simp_tryLemmaCore_go(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* l_Lean_Expr_appArg_x21(lean_object*);
|
||||
|
|
@ -66,6 +67,7 @@ LEAN_EXPORT lean_object* l_Lean_Meta_Simp_postDefault(lean_object*, lean_object*
|
|||
LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Meta_Simp_synthesizeArgs___spec__1___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Meta_Tactic_Simp_Rewrite_0__Lean_Meta_Simp_tryLemmaCore_go___lambda__4___closed__1;
|
||||
uint8_t lean_usize_dec_lt(size_t, size_t);
|
||||
static lean_object* l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__14;
|
||||
static lean_object* l_Lean_Meta_Simp_rewrite___closed__9;
|
||||
static lean_object* l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__1;
|
||||
lean_object* lean_nat_add(lean_object*, lean_object*);
|
||||
|
|
@ -75,6 +77,7 @@ lean_object* l_Lean_Meta_mkDecide(lean_object*, lean_object*, lean_object*, lean
|
|||
static lean_object* l_Lean_Meta_Simp_rewriteUsingDecide_x3f___closed__7;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_Rewrite_0__Lean_Meta_Simp_tryLemmaCore_go___lambda__3(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* l_Lean_Meta_mkEqRefl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__17;
|
||||
static lean_object* l_Lean_Meta_Simp_rewriteCtorEq_x3f___closed__2;
|
||||
lean_object* l_Lean_mkAppN(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Util_Trace_0__Lean_checkTraceOptionM___at_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -224,6 +227,7 @@ LEAN_EXPORT lean_object* l_Lean_Meta_Simp_rewrite___lambda__2___boxed(lean_objec
|
|||
static lean_object* l_Lean_Meta_Simp_rewriteCtorEq_x3f___lambda__1___closed__3;
|
||||
static lean_object* l___private_Lean_Meta_Tactic_Simp_Rewrite_0__Lean_Meta_Simp_tryLemmaCore_go___closed__5;
|
||||
static lean_object* l___private_Lean_Meta_Tactic_Simp_Rewrite_0__Lean_Meta_Simp_tryLemmaCore_go___closed__3;
|
||||
static lean_object* l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__16;
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_Simp_rewrite_inErasedSet___boxed(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_Rewrite_0__Lean_Meta_Simp_tryLemmaCore(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* l_Lean_Meta_withLocalDecl___at___private_Lean_Meta_Tactic_Simp_SimpLemmas_0__Lean_Meta_isPerm___spec__1___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -661,6 +665,40 @@ x_2 = l_Lean_stringToMessageData(x_1);
|
|||
return x_2;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__14() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
x_1 = lean_mk_string("\nsythesized value");
|
||||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__15() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2;
|
||||
x_1 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__14;
|
||||
x_2 = l_Lean_stringToMessageData(x_1);
|
||||
return x_2;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__16() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
x_1 = lean_mk_string("\nis not definitionally equal to");
|
||||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__17() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2;
|
||||
x_1 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__16;
|
||||
x_2 = l_Lean_stringToMessageData(x_1);
|
||||
return x_2;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance(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:
|
||||
{
|
||||
|
|
@ -769,267 +807,539 @@ return x_32;
|
|||
}
|
||||
case 1:
|
||||
{
|
||||
lean_object* x_45; lean_object* x_46; lean_object* x_47;
|
||||
x_45 = lean_ctor_get(x_12, 1);
|
||||
lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; uint8_t x_52;
|
||||
x_45 = lean_ctor_get(x_6, 0);
|
||||
lean_inc(x_45);
|
||||
lean_dec(x_12);
|
||||
x_46 = lean_ctor_get(x_13, 0);
|
||||
x_46 = lean_ctor_get(x_12, 1);
|
||||
lean_inc(x_46);
|
||||
lean_dec(x_12);
|
||||
x_47 = lean_ctor_get(x_13, 0);
|
||||
lean_inc(x_47);
|
||||
lean_dec(x_13);
|
||||
x_48 = lean_ctor_get(x_6, 1);
|
||||
lean_inc(x_48);
|
||||
x_49 = lean_ctor_get(x_6, 2);
|
||||
lean_inc(x_49);
|
||||
x_50 = lean_ctor_get(x_6, 3);
|
||||
lean_inc(x_50);
|
||||
x_51 = lean_ctor_get(x_6, 4);
|
||||
lean_inc(x_51);
|
||||
x_52 = !lean_is_exclusive(x_45);
|
||||
if (x_52 == 0)
|
||||
{
|
||||
uint8_t x_53; lean_object* x_54; lean_object* x_55;
|
||||
x_53 = 3;
|
||||
lean_ctor_set_uint8(x_45, 5, x_53);
|
||||
x_54 = lean_alloc_ctor(0, 5, 0);
|
||||
lean_ctor_set(x_54, 0, x_45);
|
||||
lean_ctor_set(x_54, 1, x_48);
|
||||
lean_ctor_set(x_54, 2, x_49);
|
||||
lean_ctor_set(x_54, 3, x_50);
|
||||
lean_ctor_set(x_54, 4, x_51);
|
||||
lean_inc(x_9);
|
||||
lean_inc(x_8);
|
||||
lean_inc(x_7);
|
||||
lean_inc(x_6);
|
||||
x_47 = l_Lean_Meta_isExprDefEq(x_2, x_46, x_6, x_7, x_8, x_9, x_45);
|
||||
if (lean_obj_tag(x_47) == 0)
|
||||
lean_inc(x_47);
|
||||
lean_inc(x_2);
|
||||
x_55 = l_Lean_Meta_isExprDefEq(x_2, x_47, x_54, x_7, x_8, x_9, x_46);
|
||||
if (lean_obj_tag(x_55) == 0)
|
||||
{
|
||||
lean_object* x_48; uint8_t x_49;
|
||||
x_48 = lean_ctor_get(x_47, 0);
|
||||
lean_inc(x_48);
|
||||
x_49 = lean_unbox(x_48);
|
||||
lean_dec(x_48);
|
||||
if (x_49 == 0)
|
||||
lean_object* x_56; uint8_t x_57;
|
||||
x_56 = lean_ctor_get(x_55, 0);
|
||||
lean_inc(x_56);
|
||||
x_57 = lean_unbox(x_56);
|
||||
lean_dec(x_56);
|
||||
if (x_57 == 0)
|
||||
{
|
||||
lean_object* x_50; lean_object* x_51; uint8_t x_52; lean_object* x_53; lean_object* x_70; lean_object* x_71; lean_object* x_72; uint8_t x_73;
|
||||
x_50 = lean_ctor_get(x_47, 1);
|
||||
lean_inc(x_50);
|
||||
lean_dec(x_47);
|
||||
x_51 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__8;
|
||||
x_70 = lean_st_ref_get(x_9, x_50);
|
||||
x_71 = lean_ctor_get(x_70, 0);
|
||||
lean_inc(x_71);
|
||||
x_72 = lean_ctor_get(x_71, 3);
|
||||
lean_inc(x_72);
|
||||
lean_dec(x_71);
|
||||
x_73 = lean_ctor_get_uint8(x_72, sizeof(void*)*1);
|
||||
lean_dec(x_72);
|
||||
if (x_73 == 0)
|
||||
{
|
||||
lean_object* x_74; uint8_t x_75;
|
||||
x_74 = lean_ctor_get(x_70, 1);
|
||||
lean_inc(x_74);
|
||||
lean_dec(x_70);
|
||||
x_75 = 0;
|
||||
x_52 = x_75;
|
||||
x_53 = x_74;
|
||||
goto block_69;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; uint8_t x_80;
|
||||
x_76 = lean_ctor_get(x_70, 1);
|
||||
lean_inc(x_76);
|
||||
lean_dec(x_70);
|
||||
x_77 = l___private_Lean_Util_Trace_0__Lean_checkTraceOptionM___at_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___spec__2(x_51, x_4, x_5, x_6, x_7, x_8, x_9, x_76);
|
||||
x_78 = lean_ctor_get(x_77, 0);
|
||||
lean_inc(x_78);
|
||||
x_79 = lean_ctor_get(x_77, 1);
|
||||
lean_inc(x_79);
|
||||
lean_dec(x_77);
|
||||
x_80 = lean_unbox(x_78);
|
||||
lean_dec(x_78);
|
||||
x_52 = x_80;
|
||||
x_53 = x_79;
|
||||
goto block_69;
|
||||
}
|
||||
block_69:
|
||||
{
|
||||
lean_object* x_54;
|
||||
x_54 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__9;
|
||||
if (x_52 == 0)
|
||||
{
|
||||
lean_object* x_55; lean_object* x_56;
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_1);
|
||||
x_55 = lean_box(0);
|
||||
x_56 = lean_apply_8(x_54, x_55, x_4, x_5, x_6, x_7, x_8, x_9, x_53);
|
||||
return x_56;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68;
|
||||
x_57 = lean_alloc_ctor(4, 1, 0);
|
||||
lean_ctor_set(x_57, 0, x_1);
|
||||
x_58 = l_Lean_addTrace___at_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___spec__1___closed__8;
|
||||
x_59 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_59, 0, x_58);
|
||||
lean_ctor_set(x_59, 1, x_57);
|
||||
x_60 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__13;
|
||||
x_61 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_61, 0, x_59);
|
||||
lean_ctor_set(x_61, 1, x_60);
|
||||
x_62 = l_Lean_indentExpr(x_3);
|
||||
x_63 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_63, 0, x_61);
|
||||
lean_ctor_set(x_63, 1, x_62);
|
||||
x_64 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_64, 0, x_63);
|
||||
lean_ctor_set(x_64, 1, x_58);
|
||||
x_65 = l_Lean_addTrace___at_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___spec__1(x_51, x_64, x_4, x_5, x_6, x_7, x_8, x_9, x_53);
|
||||
x_66 = lean_ctor_get(x_65, 0);
|
||||
lean_inc(x_66);
|
||||
x_67 = lean_ctor_get(x_65, 1);
|
||||
lean_inc(x_67);
|
||||
lean_dec(x_65);
|
||||
x_68 = lean_apply_8(x_54, x_66, x_4, x_5, x_6, x_7, x_8, x_9, x_67);
|
||||
return x_68;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_81;
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_1);
|
||||
x_81 = !lean_is_exclusive(x_47);
|
||||
if (x_81 == 0)
|
||||
{
|
||||
lean_object* x_82; uint8_t x_83; lean_object* x_84;
|
||||
x_82 = lean_ctor_get(x_47, 0);
|
||||
lean_dec(x_82);
|
||||
x_83 = 1;
|
||||
x_84 = lean_box(x_83);
|
||||
lean_ctor_set(x_47, 0, x_84);
|
||||
return x_47;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_85; uint8_t x_86; lean_object* x_87; lean_object* x_88;
|
||||
x_85 = lean_ctor_get(x_47, 1);
|
||||
lean_inc(x_85);
|
||||
lean_dec(x_47);
|
||||
x_86 = 1;
|
||||
x_87 = lean_box(x_86);
|
||||
x_88 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_88, 0, x_87);
|
||||
lean_ctor_set(x_88, 1, x_85);
|
||||
return x_88;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_89;
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_1);
|
||||
x_89 = !lean_is_exclusive(x_47);
|
||||
lean_object* x_58; lean_object* x_59; uint8_t x_60; lean_object* x_61; lean_object* x_86; lean_object* x_87; lean_object* x_88; uint8_t x_89;
|
||||
x_58 = lean_ctor_get(x_55, 1);
|
||||
lean_inc(x_58);
|
||||
lean_dec(x_55);
|
||||
x_59 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__8;
|
||||
x_86 = lean_st_ref_get(x_9, x_58);
|
||||
x_87 = lean_ctor_get(x_86, 0);
|
||||
lean_inc(x_87);
|
||||
x_88 = lean_ctor_get(x_87, 3);
|
||||
lean_inc(x_88);
|
||||
lean_dec(x_87);
|
||||
x_89 = lean_ctor_get_uint8(x_88, sizeof(void*)*1);
|
||||
lean_dec(x_88);
|
||||
if (x_89 == 0)
|
||||
{
|
||||
return x_47;
|
||||
lean_object* x_90; uint8_t x_91;
|
||||
x_90 = lean_ctor_get(x_86, 1);
|
||||
lean_inc(x_90);
|
||||
lean_dec(x_86);
|
||||
x_91 = 0;
|
||||
x_60 = x_91;
|
||||
x_61 = x_90;
|
||||
goto block_85;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_90; lean_object* x_91; lean_object* x_92;
|
||||
x_90 = lean_ctor_get(x_47, 0);
|
||||
x_91 = lean_ctor_get(x_47, 1);
|
||||
lean_inc(x_91);
|
||||
lean_inc(x_90);
|
||||
lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; uint8_t x_96;
|
||||
x_92 = lean_ctor_get(x_86, 1);
|
||||
lean_inc(x_92);
|
||||
lean_dec(x_86);
|
||||
x_93 = l___private_Lean_Util_Trace_0__Lean_checkTraceOptionM___at_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___spec__2(x_59, x_4, x_5, x_6, x_7, x_8, x_9, x_92);
|
||||
x_94 = lean_ctor_get(x_93, 0);
|
||||
lean_inc(x_94);
|
||||
x_95 = lean_ctor_get(x_93, 1);
|
||||
lean_inc(x_95);
|
||||
lean_dec(x_93);
|
||||
x_96 = lean_unbox(x_94);
|
||||
lean_dec(x_94);
|
||||
x_60 = x_96;
|
||||
x_61 = x_95;
|
||||
goto block_85;
|
||||
}
|
||||
block_85:
|
||||
{
|
||||
lean_object* x_62;
|
||||
x_62 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__9;
|
||||
if (x_60 == 0)
|
||||
{
|
||||
lean_object* x_63; lean_object* x_64;
|
||||
lean_dec(x_47);
|
||||
x_92 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_92, 0, x_90);
|
||||
lean_ctor_set(x_92, 1, x_91);
|
||||
return x_92;
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_63 = lean_box(0);
|
||||
x_64 = lean_apply_8(x_62, x_63, x_4, x_5, x_6, x_7, x_8, x_9, x_61);
|
||||
return x_64;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* 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;
|
||||
x_65 = lean_alloc_ctor(4, 1, 0);
|
||||
lean_ctor_set(x_65, 0, x_1);
|
||||
x_66 = l_Lean_addTrace___at_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___spec__1___closed__8;
|
||||
x_67 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_67, 0, x_66);
|
||||
lean_ctor_set(x_67, 1, x_65);
|
||||
x_68 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__13;
|
||||
x_69 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_69, 0, x_67);
|
||||
lean_ctor_set(x_69, 1, x_68);
|
||||
x_70 = l_Lean_indentExpr(x_3);
|
||||
x_71 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_71, 0, x_69);
|
||||
lean_ctor_set(x_71, 1, x_70);
|
||||
x_72 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__15;
|
||||
x_73 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_73, 0, x_71);
|
||||
lean_ctor_set(x_73, 1, x_72);
|
||||
x_74 = l_Lean_indentExpr(x_47);
|
||||
x_75 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_75, 0, x_73);
|
||||
lean_ctor_set(x_75, 1, x_74);
|
||||
x_76 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__17;
|
||||
x_77 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_77, 0, x_75);
|
||||
lean_ctor_set(x_77, 1, x_76);
|
||||
x_78 = l_Lean_indentExpr(x_2);
|
||||
x_79 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_79, 0, x_77);
|
||||
lean_ctor_set(x_79, 1, x_78);
|
||||
x_80 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_80, 0, x_79);
|
||||
lean_ctor_set(x_80, 1, x_66);
|
||||
x_81 = l_Lean_addTrace___at_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___spec__1(x_59, x_80, x_4, x_5, x_6, x_7, x_8, x_9, x_61);
|
||||
x_82 = lean_ctor_get(x_81, 0);
|
||||
lean_inc(x_82);
|
||||
x_83 = lean_ctor_get(x_81, 1);
|
||||
lean_inc(x_83);
|
||||
lean_dec(x_81);
|
||||
x_84 = lean_apply_8(x_62, x_82, x_4, x_5, x_6, x_7, x_8, x_9, x_83);
|
||||
return x_84;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_97;
|
||||
lean_dec(x_47);
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_97 = !lean_is_exclusive(x_55);
|
||||
if (x_97 == 0)
|
||||
{
|
||||
lean_object* x_98; uint8_t x_99; lean_object* x_100;
|
||||
x_98 = lean_ctor_get(x_55, 0);
|
||||
lean_dec(x_98);
|
||||
x_99 = 1;
|
||||
x_100 = lean_box(x_99);
|
||||
lean_ctor_set(x_55, 0, x_100);
|
||||
return x_55;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_101; uint8_t x_102; lean_object* x_103; lean_object* x_104;
|
||||
x_101 = lean_ctor_get(x_55, 1);
|
||||
lean_inc(x_101);
|
||||
lean_dec(x_55);
|
||||
x_102 = 1;
|
||||
x_103 = lean_box(x_102);
|
||||
x_104 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_104, 0, x_103);
|
||||
lean_ctor_set(x_104, 1, x_101);
|
||||
return x_104;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_105;
|
||||
lean_dec(x_47);
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_105 = !lean_is_exclusive(x_55);
|
||||
if (x_105 == 0)
|
||||
{
|
||||
return x_55;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_106; lean_object* x_107; lean_object* x_108;
|
||||
x_106 = lean_ctor_get(x_55, 0);
|
||||
x_107 = lean_ctor_get(x_55, 1);
|
||||
lean_inc(x_107);
|
||||
lean_inc(x_106);
|
||||
lean_dec(x_55);
|
||||
x_108 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_108, 0, x_106);
|
||||
lean_ctor_set(x_108, 1, x_107);
|
||||
return x_108;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_109; uint8_t x_110; uint8_t x_111; uint8_t x_112; uint8_t x_113; uint8_t x_114; uint8_t x_115; uint8_t x_116; uint8_t x_117; uint8_t x_118; uint8_t x_119; uint8_t x_120; uint8_t x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124;
|
||||
x_109 = lean_ctor_get_uint8(x_45, 0);
|
||||
x_110 = lean_ctor_get_uint8(x_45, 1);
|
||||
x_111 = lean_ctor_get_uint8(x_45, 2);
|
||||
x_112 = lean_ctor_get_uint8(x_45, 3);
|
||||
x_113 = lean_ctor_get_uint8(x_45, 4);
|
||||
x_114 = lean_ctor_get_uint8(x_45, 6);
|
||||
x_115 = lean_ctor_get_uint8(x_45, 7);
|
||||
x_116 = lean_ctor_get_uint8(x_45, 8);
|
||||
x_117 = lean_ctor_get_uint8(x_45, 9);
|
||||
x_118 = lean_ctor_get_uint8(x_45, 10);
|
||||
x_119 = lean_ctor_get_uint8(x_45, 11);
|
||||
x_120 = lean_ctor_get_uint8(x_45, 12);
|
||||
lean_dec(x_45);
|
||||
x_121 = 3;
|
||||
x_122 = lean_alloc_ctor(0, 0, 13);
|
||||
lean_ctor_set_uint8(x_122, 0, x_109);
|
||||
lean_ctor_set_uint8(x_122, 1, x_110);
|
||||
lean_ctor_set_uint8(x_122, 2, x_111);
|
||||
lean_ctor_set_uint8(x_122, 3, x_112);
|
||||
lean_ctor_set_uint8(x_122, 4, x_113);
|
||||
lean_ctor_set_uint8(x_122, 5, x_121);
|
||||
lean_ctor_set_uint8(x_122, 6, x_114);
|
||||
lean_ctor_set_uint8(x_122, 7, x_115);
|
||||
lean_ctor_set_uint8(x_122, 8, x_116);
|
||||
lean_ctor_set_uint8(x_122, 9, x_117);
|
||||
lean_ctor_set_uint8(x_122, 10, x_118);
|
||||
lean_ctor_set_uint8(x_122, 11, x_119);
|
||||
lean_ctor_set_uint8(x_122, 12, x_120);
|
||||
x_123 = lean_alloc_ctor(0, 5, 0);
|
||||
lean_ctor_set(x_123, 0, x_122);
|
||||
lean_ctor_set(x_123, 1, x_48);
|
||||
lean_ctor_set(x_123, 2, x_49);
|
||||
lean_ctor_set(x_123, 3, x_50);
|
||||
lean_ctor_set(x_123, 4, x_51);
|
||||
lean_inc(x_9);
|
||||
lean_inc(x_8);
|
||||
lean_inc(x_7);
|
||||
lean_inc(x_47);
|
||||
lean_inc(x_2);
|
||||
x_124 = l_Lean_Meta_isExprDefEq(x_2, x_47, x_123, x_7, x_8, x_9, x_46);
|
||||
if (lean_obj_tag(x_124) == 0)
|
||||
{
|
||||
lean_object* x_125; uint8_t x_126;
|
||||
x_125 = lean_ctor_get(x_124, 0);
|
||||
lean_inc(x_125);
|
||||
x_126 = lean_unbox(x_125);
|
||||
lean_dec(x_125);
|
||||
if (x_126 == 0)
|
||||
{
|
||||
lean_object* x_127; lean_object* x_128; uint8_t x_129; lean_object* x_130; lean_object* x_155; lean_object* x_156; lean_object* x_157; uint8_t x_158;
|
||||
x_127 = lean_ctor_get(x_124, 1);
|
||||
lean_inc(x_127);
|
||||
lean_dec(x_124);
|
||||
x_128 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__8;
|
||||
x_155 = lean_st_ref_get(x_9, x_127);
|
||||
x_156 = lean_ctor_get(x_155, 0);
|
||||
lean_inc(x_156);
|
||||
x_157 = lean_ctor_get(x_156, 3);
|
||||
lean_inc(x_157);
|
||||
lean_dec(x_156);
|
||||
x_158 = lean_ctor_get_uint8(x_157, sizeof(void*)*1);
|
||||
lean_dec(x_157);
|
||||
if (x_158 == 0)
|
||||
{
|
||||
lean_object* x_159; uint8_t x_160;
|
||||
x_159 = lean_ctor_get(x_155, 1);
|
||||
lean_inc(x_159);
|
||||
lean_dec(x_155);
|
||||
x_160 = 0;
|
||||
x_129 = x_160;
|
||||
x_130 = x_159;
|
||||
goto block_154;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; uint8_t x_165;
|
||||
x_161 = lean_ctor_get(x_155, 1);
|
||||
lean_inc(x_161);
|
||||
lean_dec(x_155);
|
||||
x_162 = l___private_Lean_Util_Trace_0__Lean_checkTraceOptionM___at_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___spec__2(x_128, x_4, x_5, x_6, x_7, x_8, x_9, x_161);
|
||||
x_163 = lean_ctor_get(x_162, 0);
|
||||
lean_inc(x_163);
|
||||
x_164 = lean_ctor_get(x_162, 1);
|
||||
lean_inc(x_164);
|
||||
lean_dec(x_162);
|
||||
x_165 = lean_unbox(x_163);
|
||||
lean_dec(x_163);
|
||||
x_129 = x_165;
|
||||
x_130 = x_164;
|
||||
goto block_154;
|
||||
}
|
||||
block_154:
|
||||
{
|
||||
lean_object* x_131;
|
||||
x_131 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__9;
|
||||
if (x_129 == 0)
|
||||
{
|
||||
lean_object* x_132; lean_object* x_133;
|
||||
lean_dec(x_47);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_132 = lean_box(0);
|
||||
x_133 = lean_apply_8(x_131, x_132, x_4, x_5, x_6, x_7, x_8, x_9, x_130);
|
||||
return x_133;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153;
|
||||
x_134 = lean_alloc_ctor(4, 1, 0);
|
||||
lean_ctor_set(x_134, 0, x_1);
|
||||
x_135 = l_Lean_addTrace___at_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___spec__1___closed__8;
|
||||
x_136 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_136, 0, x_135);
|
||||
lean_ctor_set(x_136, 1, x_134);
|
||||
x_137 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__13;
|
||||
x_138 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_138, 0, x_136);
|
||||
lean_ctor_set(x_138, 1, x_137);
|
||||
x_139 = l_Lean_indentExpr(x_3);
|
||||
x_140 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_140, 0, x_138);
|
||||
lean_ctor_set(x_140, 1, x_139);
|
||||
x_141 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__15;
|
||||
x_142 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_142, 0, x_140);
|
||||
lean_ctor_set(x_142, 1, x_141);
|
||||
x_143 = l_Lean_indentExpr(x_47);
|
||||
x_144 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_144, 0, x_142);
|
||||
lean_ctor_set(x_144, 1, x_143);
|
||||
x_145 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__17;
|
||||
x_146 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_146, 0, x_144);
|
||||
lean_ctor_set(x_146, 1, x_145);
|
||||
x_147 = l_Lean_indentExpr(x_2);
|
||||
x_148 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_148, 0, x_146);
|
||||
lean_ctor_set(x_148, 1, x_147);
|
||||
x_149 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_149, 0, x_148);
|
||||
lean_ctor_set(x_149, 1, x_135);
|
||||
x_150 = l_Lean_addTrace___at_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___spec__1(x_128, x_149, x_4, x_5, x_6, x_7, x_8, x_9, x_130);
|
||||
x_151 = lean_ctor_get(x_150, 0);
|
||||
lean_inc(x_151);
|
||||
x_152 = lean_ctor_get(x_150, 1);
|
||||
lean_inc(x_152);
|
||||
lean_dec(x_150);
|
||||
x_153 = lean_apply_8(x_131, x_151, x_4, x_5, x_6, x_7, x_8, x_9, x_152);
|
||||
return x_153;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_166; lean_object* x_167; uint8_t x_168; lean_object* x_169; lean_object* x_170;
|
||||
lean_dec(x_47);
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_166 = lean_ctor_get(x_124, 1);
|
||||
lean_inc(x_166);
|
||||
if (lean_is_exclusive(x_124)) {
|
||||
lean_ctor_release(x_124, 0);
|
||||
lean_ctor_release(x_124, 1);
|
||||
x_167 = x_124;
|
||||
} else {
|
||||
lean_dec_ref(x_124);
|
||||
x_167 = lean_box(0);
|
||||
}
|
||||
x_168 = 1;
|
||||
x_169 = lean_box(x_168);
|
||||
if (lean_is_scalar(x_167)) {
|
||||
x_170 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_170 = x_167;
|
||||
}
|
||||
lean_ctor_set(x_170, 0, x_169);
|
||||
lean_ctor_set(x_170, 1, x_166);
|
||||
return x_170;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_171; lean_object* x_172; lean_object* x_173; lean_object* x_174;
|
||||
lean_dec(x_47);
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_171 = lean_ctor_get(x_124, 0);
|
||||
lean_inc(x_171);
|
||||
x_172 = lean_ctor_get(x_124, 1);
|
||||
lean_inc(x_172);
|
||||
if (lean_is_exclusive(x_124)) {
|
||||
lean_ctor_release(x_124, 0);
|
||||
lean_ctor_release(x_124, 1);
|
||||
x_173 = x_124;
|
||||
} else {
|
||||
lean_dec_ref(x_124);
|
||||
x_173 = lean_box(0);
|
||||
}
|
||||
if (lean_is_scalar(x_173)) {
|
||||
x_174 = lean_alloc_ctor(1, 2, 0);
|
||||
} else {
|
||||
x_174 = x_173;
|
||||
}
|
||||
lean_ctor_set(x_174, 0, x_171);
|
||||
lean_ctor_set(x_174, 1, x_172);
|
||||
return x_174;
|
||||
}
|
||||
}
|
||||
}
|
||||
default:
|
||||
{
|
||||
lean_object* x_93; lean_object* x_94; uint8_t x_95; lean_object* x_96; lean_object* x_113; lean_object* x_114; lean_object* x_115; uint8_t x_116;
|
||||
lean_object* x_175; lean_object* x_176; uint8_t x_177; lean_object* x_178; lean_object* x_195; lean_object* x_196; lean_object* x_197; uint8_t x_198;
|
||||
lean_dec(x_2);
|
||||
x_93 = lean_ctor_get(x_12, 1);
|
||||
lean_inc(x_93);
|
||||
x_175 = lean_ctor_get(x_12, 1);
|
||||
lean_inc(x_175);
|
||||
lean_dec(x_12);
|
||||
x_94 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__8;
|
||||
x_113 = lean_st_ref_get(x_9, x_93);
|
||||
x_114 = lean_ctor_get(x_113, 0);
|
||||
lean_inc(x_114);
|
||||
x_115 = lean_ctor_get(x_114, 3);
|
||||
lean_inc(x_115);
|
||||
lean_dec(x_114);
|
||||
x_116 = lean_ctor_get_uint8(x_115, sizeof(void*)*1);
|
||||
lean_dec(x_115);
|
||||
if (x_116 == 0)
|
||||
x_176 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__8;
|
||||
x_195 = lean_st_ref_get(x_9, x_175);
|
||||
x_196 = lean_ctor_get(x_195, 0);
|
||||
lean_inc(x_196);
|
||||
x_197 = lean_ctor_get(x_196, 3);
|
||||
lean_inc(x_197);
|
||||
lean_dec(x_196);
|
||||
x_198 = lean_ctor_get_uint8(x_197, sizeof(void*)*1);
|
||||
lean_dec(x_197);
|
||||
if (x_198 == 0)
|
||||
{
|
||||
lean_object* x_117; uint8_t x_118;
|
||||
x_117 = lean_ctor_get(x_113, 1);
|
||||
lean_inc(x_117);
|
||||
lean_dec(x_113);
|
||||
x_118 = 0;
|
||||
x_95 = x_118;
|
||||
x_96 = x_117;
|
||||
goto block_112;
|
||||
lean_object* x_199; uint8_t x_200;
|
||||
x_199 = lean_ctor_get(x_195, 1);
|
||||
lean_inc(x_199);
|
||||
lean_dec(x_195);
|
||||
x_200 = 0;
|
||||
x_177 = x_200;
|
||||
x_178 = x_199;
|
||||
goto block_194;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; uint8_t x_123;
|
||||
x_119 = lean_ctor_get(x_113, 1);
|
||||
lean_inc(x_119);
|
||||
lean_dec(x_113);
|
||||
x_120 = l___private_Lean_Util_Trace_0__Lean_checkTraceOptionM___at_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___spec__2(x_94, x_4, x_5, x_6, x_7, x_8, x_9, x_119);
|
||||
x_121 = lean_ctor_get(x_120, 0);
|
||||
lean_inc(x_121);
|
||||
x_122 = lean_ctor_get(x_120, 1);
|
||||
lean_inc(x_122);
|
||||
lean_dec(x_120);
|
||||
x_123 = lean_unbox(x_121);
|
||||
lean_dec(x_121);
|
||||
x_95 = x_123;
|
||||
x_96 = x_122;
|
||||
goto block_112;
|
||||
lean_object* x_201; lean_object* x_202; lean_object* x_203; lean_object* x_204; uint8_t x_205;
|
||||
x_201 = lean_ctor_get(x_195, 1);
|
||||
lean_inc(x_201);
|
||||
lean_dec(x_195);
|
||||
x_202 = l___private_Lean_Util_Trace_0__Lean_checkTraceOptionM___at_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___spec__2(x_176, x_4, x_5, x_6, x_7, x_8, x_9, x_201);
|
||||
x_203 = lean_ctor_get(x_202, 0);
|
||||
lean_inc(x_203);
|
||||
x_204 = lean_ctor_get(x_202, 1);
|
||||
lean_inc(x_204);
|
||||
lean_dec(x_202);
|
||||
x_205 = lean_unbox(x_203);
|
||||
lean_dec(x_203);
|
||||
x_177 = x_205;
|
||||
x_178 = x_204;
|
||||
goto block_194;
|
||||
}
|
||||
block_112:
|
||||
block_194:
|
||||
{
|
||||
lean_object* x_97;
|
||||
x_97 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__9;
|
||||
if (x_95 == 0)
|
||||
lean_object* x_179;
|
||||
x_179 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__9;
|
||||
if (x_177 == 0)
|
||||
{
|
||||
lean_object* x_98; lean_object* x_99;
|
||||
lean_object* x_180; lean_object* x_181;
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_1);
|
||||
x_98 = lean_box(0);
|
||||
x_99 = lean_apply_8(x_97, x_98, x_4, x_5, x_6, x_7, x_8, x_9, x_96);
|
||||
return x_99;
|
||||
x_180 = lean_box(0);
|
||||
x_181 = lean_apply_8(x_179, x_180, x_4, x_5, x_6, x_7, x_8, x_9, x_178);
|
||||
return x_181;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111;
|
||||
x_100 = lean_alloc_ctor(4, 1, 0);
|
||||
lean_ctor_set(x_100, 0, x_1);
|
||||
x_101 = l_Lean_addTrace___at_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___spec__1___closed__8;
|
||||
x_102 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_102, 0, x_101);
|
||||
lean_ctor_set(x_102, 1, x_100);
|
||||
x_103 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__11;
|
||||
x_104 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_104, 0, x_102);
|
||||
lean_ctor_set(x_104, 1, x_103);
|
||||
x_105 = l_Lean_indentExpr(x_3);
|
||||
x_106 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_106, 0, x_104);
|
||||
lean_ctor_set(x_106, 1, x_105);
|
||||
x_107 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_107, 0, x_106);
|
||||
lean_ctor_set(x_107, 1, x_101);
|
||||
x_108 = l_Lean_addTrace___at_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___spec__1(x_94, x_107, x_4, x_5, x_6, x_7, x_8, x_9, x_96);
|
||||
x_109 = lean_ctor_get(x_108, 0);
|
||||
lean_inc(x_109);
|
||||
x_110 = lean_ctor_get(x_108, 1);
|
||||
lean_inc(x_110);
|
||||
lean_dec(x_108);
|
||||
x_111 = lean_apply_8(x_97, x_109, x_4, x_5, x_6, x_7, x_8, x_9, x_110);
|
||||
return x_111;
|
||||
lean_object* x_182; lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; 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_182 = lean_alloc_ctor(4, 1, 0);
|
||||
lean_ctor_set(x_182, 0, x_1);
|
||||
x_183 = l_Lean_addTrace___at_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___spec__1___closed__8;
|
||||
x_184 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_184, 0, x_183);
|
||||
lean_ctor_set(x_184, 1, x_182);
|
||||
x_185 = l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__11;
|
||||
x_186 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_186, 0, x_184);
|
||||
lean_ctor_set(x_186, 1, x_185);
|
||||
x_187 = l_Lean_indentExpr(x_3);
|
||||
x_188 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_188, 0, x_186);
|
||||
lean_ctor_set(x_188, 1, x_187);
|
||||
x_189 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_189, 0, x_188);
|
||||
lean_ctor_set(x_189, 1, x_183);
|
||||
x_190 = l_Lean_addTrace___at_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___spec__1(x_176, x_189, x_4, x_5, x_6, x_7, x_8, x_9, x_178);
|
||||
x_191 = lean_ctor_get(x_190, 0);
|
||||
lean_inc(x_191);
|
||||
x_192 = lean_ctor_get(x_190, 1);
|
||||
lean_inc(x_192);
|
||||
lean_dec(x_190);
|
||||
x_193 = lean_apply_8(x_179, x_191, x_4, x_5, x_6, x_7, x_8, x_9, x_192);
|
||||
return x_193;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1037,7 +1347,7 @@ return x_111;
|
|||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_124;
|
||||
uint8_t x_206;
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
|
|
@ -1047,23 +1357,23 @@ lean_dec(x_4);
|
|||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_124 = !lean_is_exclusive(x_12);
|
||||
if (x_124 == 0)
|
||||
x_206 = !lean_is_exclusive(x_12);
|
||||
if (x_206 == 0)
|
||||
{
|
||||
return x_12;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_125; lean_object* x_126; lean_object* x_127;
|
||||
x_125 = lean_ctor_get(x_12, 0);
|
||||
x_126 = lean_ctor_get(x_12, 1);
|
||||
lean_inc(x_126);
|
||||
lean_inc(x_125);
|
||||
lean_object* x_207; lean_object* x_208; lean_object* x_209;
|
||||
x_207 = lean_ctor_get(x_12, 0);
|
||||
x_208 = lean_ctor_get(x_12, 1);
|
||||
lean_inc(x_208);
|
||||
lean_inc(x_207);
|
||||
lean_dec(x_12);
|
||||
x_127 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_127, 0, x_125);
|
||||
lean_ctor_set(x_127, 1, x_126);
|
||||
return x_127;
|
||||
x_209 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_209, 0, x_207);
|
||||
lean_ctor_set(x_209, 1, x_208);
|
||||
return x_209;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -6714,15 +7024,15 @@ x_6 = lean_unsigned_to_nat(1u);
|
|||
x_7 = lean_nat_sub(x_2, x_6);
|
||||
x_8 = lean_array_fget(x_1, x_2);
|
||||
x_9 = lean_array_fget(x_1, x_7);
|
||||
x_10 = lean_ctor_get(x_8, 0);
|
||||
x_10 = lean_ctor_get(x_9, 0);
|
||||
lean_inc(x_10);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_9);
|
||||
x_11 = lean_ctor_get(x_10, 3);
|
||||
lean_inc(x_11);
|
||||
lean_dec(x_10);
|
||||
x_12 = lean_ctor_get(x_9, 0);
|
||||
x_12 = lean_ctor_get(x_8, 0);
|
||||
lean_inc(x_12);
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_8);
|
||||
x_13 = lean_ctor_get(x_12, 3);
|
||||
lean_inc(x_13);
|
||||
lean_dec(x_12);
|
||||
|
|
@ -11003,6 +11313,14 @@ l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__12 = _init_l_Lean_M
|
|||
lean_mark_persistent(l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__12);
|
||||
l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__13 = _init_l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__13();
|
||||
lean_mark_persistent(l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__13);
|
||||
l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__14 = _init_l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__14();
|
||||
lean_mark_persistent(l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__14);
|
||||
l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__15 = _init_l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__15();
|
||||
lean_mark_persistent(l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__15);
|
||||
l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__16 = _init_l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__16();
|
||||
lean_mark_persistent(l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__16);
|
||||
l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__17 = _init_l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__17();
|
||||
lean_mark_persistent(l_Lean_Meta_Simp_synthesizeArgs_synthesizeInstance___closed__17);
|
||||
l_Array_forInUnsafe_loop___at_Lean_Meta_Simp_synthesizeArgs___spec__1___lambda__1___closed__1 = _init_l_Array_forInUnsafe_loop___at_Lean_Meta_Simp_synthesizeArgs___spec__1___lambda__1___closed__1();
|
||||
lean_mark_persistent(l_Array_forInUnsafe_loop___at_Lean_Meta_Simp_synthesizeArgs___spec__1___lambda__1___closed__1);
|
||||
l_Array_forInUnsafe_loop___at_Lean_Meta_Simp_synthesizeArgs___spec__1___closed__1 = _init_l_Array_forInUnsafe_loop___at_Lean_Meta_Simp_synthesizeArgs___spec__1___closed__1();
|
||||
|
|
|
|||
1696
stage0/stdlib/Lean/Parser/Command.c
generated
1696
stage0/stdlib/Lean/Parser/Command.c
generated
File diff suppressed because it is too large
Load diff
365
stage0/stdlib/Lean/PrettyPrinter/Delaborator/Builtins.c
generated
365
stage0/stdlib/Lean/PrettyPrinter/Delaborator/Builtins.c
generated
|
|
@ -424,8 +424,7 @@ static lean_object* l_Lean_PrettyPrinter_Delaborator_delabSort___closed__5;
|
|||
static lean_object* l_Lean_PrettyPrinter_Delaborator_delabDo___closed__1;
|
||||
static lean_object* l_Lean_PrettyPrinter_Delaborator_delabProjectionApp___closed__1;
|
||||
static lean_object* l_Array_mapMUnsafe_map___at_Lean_PrettyPrinter_Delaborator_unexpandStructureInstance___spec__5___closed__1;
|
||||
lean_object* l_List_foldl___at_Array_appendList___spec__1___rarg(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_PrettyPrinter_Delaborator_unresolveNameGlobal___lambda__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_PrettyPrinter_Delaborator_unresolveNameGlobal___lambda__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_PrettyPrinter_Delaborator_unexpandRegularApp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_PrettyPrinter_Delaborator_delabSort___closed__7;
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_PrettyPrinter_Delaborator_unexpandStructureInstance___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -1040,7 +1039,7 @@ static lean_object* l_Lean_PrettyPrinter_Delaborator_delabConst___closed__9;
|
|||
static lean_object* l_Lean_PrettyPrinter_Delaborator_delabConst___closed__8;
|
||||
static lean_object* l___regBuiltin_Lean_PrettyPrinter_Delaborator_delabForall___closed__5;
|
||||
static lean_object* l_Lean_PrettyPrinter_Delaborator_delabForall___lambda__2___closed__4;
|
||||
LEAN_EXPORT lean_object* l_Lean_PrettyPrinter_Delaborator_unresolveNameGlobal___lambda__1(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_PrettyPrinter_Delaborator_unresolveNameGlobal___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___regBuiltin_Lean_PrettyPrinter_Delaborator_delabLit___closed__2;
|
||||
LEAN_EXPORT lean_object* l___regBuiltin_Lean_PrettyPrinter_Delaborator_delabProjectionApp(lean_object*);
|
||||
static lean_object* l___regBuiltin_Lean_PrettyPrinter_Delaborator_delabFVar___closed__9;
|
||||
|
|
@ -3339,79 +3338,94 @@ lean_ctor_set(x_3, 1, x_2);
|
|||
return x_3;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_PrettyPrinter_Delaborator_unresolveNameGlobal___lambda__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, lean_object* x_10) {
|
||||
LEAN_EXPORT lean_object* l_Lean_PrettyPrinter_Delaborator_unresolveNameGlobal___lambda__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_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; size_t x_15; size_t x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20;
|
||||
x_11 = l_Lean_rootNamespace;
|
||||
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; lean_object* x_21; size_t x_22; size_t x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_10 = lean_st_ref_get(x_8, x_9);
|
||||
x_11 = lean_ctor_get(x_10, 0);
|
||||
lean_inc(x_11);
|
||||
x_12 = lean_ctor_get(x_10, 1);
|
||||
lean_inc(x_12);
|
||||
lean_dec(x_10);
|
||||
x_13 = lean_ctor_get(x_11, 0);
|
||||
lean_inc(x_13);
|
||||
lean_dec(x_11);
|
||||
lean_inc(x_1);
|
||||
x_12 = l_Lean_Name_append(x_11, x_1);
|
||||
x_13 = lean_array_push(x_2, x_12);
|
||||
x_14 = lean_array_get_size(x_13);
|
||||
x_15 = lean_usize_of_nat(x_14);
|
||||
lean_dec(x_14);
|
||||
x_16 = 0;
|
||||
x_17 = l_Lean_PrettyPrinter_Delaborator_unresolveNameGlobal___lambda__1___closed__1;
|
||||
x_18 = l_Array_forInUnsafe_loop___at_Lean_PrettyPrinter_Delaborator_unresolveNameGlobal___spec__1(x_1, x_17, x_13, x_15, x_16, x_17, x_4, x_5, x_6, x_7, x_8, x_9, x_10);
|
||||
lean_dec(x_13);
|
||||
x_19 = lean_ctor_get(x_18, 0);
|
||||
lean_inc(x_19);
|
||||
x_20 = lean_ctor_get(x_19, 0);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_19);
|
||||
if (lean_obj_tag(x_20) == 0)
|
||||
{
|
||||
uint8_t x_21;
|
||||
x_21 = !lean_is_exclusive(x_18);
|
||||
if (x_21 == 0)
|
||||
{
|
||||
lean_object* x_22;
|
||||
x_22 = lean_ctor_get(x_18, 0);
|
||||
lean_dec(x_22);
|
||||
lean_ctor_set(x_18, 0, x_1);
|
||||
return x_18;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_23);
|
||||
lean_dec(x_18);
|
||||
x_24 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_24, 0, x_1);
|
||||
lean_ctor_set(x_24, 1, x_23);
|
||||
return x_24;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_25;
|
||||
lean_dec(x_1);
|
||||
x_25 = !lean_is_exclusive(x_18);
|
||||
if (x_25 == 0)
|
||||
{
|
||||
lean_object* x_26; lean_object* x_27;
|
||||
x_26 = lean_ctor_get(x_18, 0);
|
||||
lean_dec(x_26);
|
||||
x_27 = lean_ctor_get(x_20, 0);
|
||||
x_14 = l_Lean_getRevAliases(x_13, x_1);
|
||||
x_15 = l_List_redLength___rarg(x_14);
|
||||
x_16 = lean_mk_empty_array_with_capacity(x_15);
|
||||
lean_dec(x_15);
|
||||
x_17 = l_List_toArrayAux___rarg(x_14, x_16);
|
||||
x_18 = l_Lean_rootNamespace;
|
||||
lean_inc(x_1);
|
||||
x_19 = l_Lean_Name_append(x_18, x_1);
|
||||
x_20 = lean_array_push(x_17, x_19);
|
||||
x_21 = lean_array_get_size(x_20);
|
||||
x_22 = lean_usize_of_nat(x_21);
|
||||
lean_dec(x_21);
|
||||
x_23 = 0;
|
||||
x_24 = l_Lean_PrettyPrinter_Delaborator_unresolveNameGlobal___lambda__1___closed__1;
|
||||
x_25 = l_Array_forInUnsafe_loop___at_Lean_PrettyPrinter_Delaborator_unresolveNameGlobal___spec__1(x_1, x_24, x_20, x_22, x_23, x_24, x_3, x_4, x_5, x_6, x_7, x_8, x_12);
|
||||
lean_dec(x_20);
|
||||
x_26 = lean_ctor_get(x_25, 0);
|
||||
lean_inc(x_26);
|
||||
x_27 = lean_ctor_get(x_26, 0);
|
||||
lean_inc(x_27);
|
||||
lean_dec(x_20);
|
||||
lean_ctor_set(x_18, 0, x_27);
|
||||
return x_18;
|
||||
lean_dec(x_26);
|
||||
if (lean_obj_tag(x_27) == 0)
|
||||
{
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_25);
|
||||
if (x_28 == 0)
|
||||
{
|
||||
lean_object* x_29;
|
||||
x_29 = lean_ctor_get(x_25, 0);
|
||||
lean_dec(x_29);
|
||||
lean_ctor_set(x_25, 0, x_1);
|
||||
return x_25;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_28; lean_object* x_29; lean_object* x_30;
|
||||
x_28 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_18);
|
||||
x_29 = lean_ctor_get(x_20, 0);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_20);
|
||||
x_30 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_30, 0, x_29);
|
||||
lean_ctor_set(x_30, 1, x_28);
|
||||
return x_30;
|
||||
lean_object* x_30; lean_object* x_31;
|
||||
x_30 = lean_ctor_get(x_25, 1);
|
||||
lean_inc(x_30);
|
||||
lean_dec(x_25);
|
||||
x_31 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_1);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_32;
|
||||
lean_dec(x_1);
|
||||
x_32 = !lean_is_exclusive(x_25);
|
||||
if (x_32 == 0)
|
||||
{
|
||||
lean_object* x_33; lean_object* x_34;
|
||||
x_33 = lean_ctor_get(x_25, 0);
|
||||
lean_dec(x_33);
|
||||
x_34 = lean_ctor_get(x_27, 0);
|
||||
lean_inc(x_34);
|
||||
lean_dec(x_27);
|
||||
lean_ctor_set(x_25, 0, x_34);
|
||||
return x_25;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_35; lean_object* x_36; lean_object* x_37;
|
||||
x_35 = lean_ctor_get(x_25, 1);
|
||||
lean_inc(x_35);
|
||||
lean_dec(x_25);
|
||||
x_36 = lean_ctor_get(x_27, 0);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_27);
|
||||
x_37 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
lean_ctor_set(x_37, 1, x_35);
|
||||
return x_37;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3446,52 +3460,157 @@ x_13 = lean_unbox(x_12);
|
|||
lean_dec(x_12);
|
||||
if (x_13 == 0)
|
||||
{
|
||||
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_14; lean_object* x_15; lean_object* x_16;
|
||||
x_14 = lean_ctor_get(x_11, 1);
|
||||
lean_inc(x_14);
|
||||
lean_dec(x_11);
|
||||
x_15 = lean_st_ref_get(x_8, x_14);
|
||||
x_16 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
lean_dec(x_15);
|
||||
x_18 = lean_ctor_get(x_16, 0);
|
||||
lean_inc(x_18);
|
||||
lean_dec(x_16);
|
||||
lean_inc(x_1);
|
||||
x_19 = l_Lean_getRevAliases(x_18, x_1);
|
||||
x_20 = l_Lean_PrettyPrinter_Delaborator_delabSort___closed__12;
|
||||
x_21 = l_List_foldl___at_Array_appendList___spec__1___rarg(x_20, x_19);
|
||||
x_22 = lean_box(0);
|
||||
x_23 = l_Lean_PrettyPrinter_Delaborator_unresolveNameGlobal___lambda__1(x_1, x_21, x_22, x_3, x_4, x_5, x_6, x_7, x_8, x_17);
|
||||
x_15 = lean_box(0);
|
||||
x_16 = l_Lean_PrettyPrinter_Delaborator_unresolveNameGlobal___lambda__1(x_1, x_15, x_3, x_4, x_5, x_6, x_7, x_8, x_14);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
return x_16;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18; lean_object* x_19;
|
||||
x_17 = lean_ctor_get(x_11, 1);
|
||||
lean_inc(x_17);
|
||||
lean_dec(x_11);
|
||||
lean_inc(x_1);
|
||||
x_18 = l_Lean_resolveGlobalName___at_Lean_PrettyPrinter_Delaborator_unresolveNameGlobal_unresolveNameCore___spec__1(x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_17);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
x_19 = lean_ctor_get(x_18, 0);
|
||||
lean_inc(x_19);
|
||||
if (lean_obj_tag(x_19) == 0)
|
||||
{
|
||||
uint8_t x_20;
|
||||
x_20 = !lean_is_exclusive(x_18);
|
||||
if (x_20 == 0)
|
||||
{
|
||||
lean_object* x_21;
|
||||
x_21 = lean_ctor_get(x_18, 0);
|
||||
lean_dec(x_21);
|
||||
lean_ctor_set(x_18, 0, x_1);
|
||||
return x_18;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_22; lean_object* x_23;
|
||||
x_22 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_18);
|
||||
x_23 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_23, 0, x_1);
|
||||
lean_ctor_set(x_23, 1, x_22);
|
||||
return x_23;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_24 = lean_ctor_get(x_11, 1);
|
||||
lean_object* x_24; lean_object* x_25;
|
||||
x_24 = lean_ctor_get(x_19, 0);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_11);
|
||||
x_25 = l_Lean_PrettyPrinter_Delaborator_delabSort___closed__12;
|
||||
x_26 = lean_box(0);
|
||||
x_27 = l_Lean_PrettyPrinter_Delaborator_unresolveNameGlobal___lambda__1(x_1, x_25, x_26, x_3, x_4, x_5, x_6, x_7, x_8, x_24);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
return x_27;
|
||||
x_25 = lean_ctor_get(x_19, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_19);
|
||||
if (lean_obj_tag(x_25) == 0)
|
||||
{
|
||||
uint8_t x_26;
|
||||
x_26 = !lean_is_exclusive(x_18);
|
||||
if (x_26 == 0)
|
||||
{
|
||||
lean_object* x_27; lean_object* x_28; uint8_t x_29;
|
||||
x_27 = lean_ctor_get(x_18, 0);
|
||||
lean_dec(x_27);
|
||||
x_28 = lean_ctor_get(x_24, 0);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_24);
|
||||
x_29 = lean_name_eq(x_28, x_1);
|
||||
lean_dec(x_28);
|
||||
if (x_29 == 0)
|
||||
{
|
||||
lean_object* x_30; lean_object* x_31;
|
||||
x_30 = l_Lean_rootNamespace;
|
||||
x_31 = l_Lean_Name_append(x_30, x_1);
|
||||
lean_ctor_set(x_18, 0, x_31);
|
||||
return x_18;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_ctor_set(x_18, 0, x_1);
|
||||
return x_18;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_28;
|
||||
lean_object* x_32; lean_object* x_33; uint8_t x_34;
|
||||
x_32 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_32);
|
||||
lean_dec(x_18);
|
||||
x_33 = lean_ctor_get(x_24, 0);
|
||||
lean_inc(x_33);
|
||||
lean_dec(x_24);
|
||||
x_34 = lean_name_eq(x_33, x_1);
|
||||
lean_dec(x_33);
|
||||
if (x_34 == 0)
|
||||
{
|
||||
lean_object* x_35; lean_object* x_36; lean_object* x_37;
|
||||
x_35 = l_Lean_rootNamespace;
|
||||
x_36 = l_Lean_Name_append(x_35, x_1);
|
||||
x_37 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
lean_ctor_set(x_37, 1, x_32);
|
||||
return x_37;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_38;
|
||||
x_38 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_38, 0, x_1);
|
||||
lean_ctor_set(x_38, 1, x_32);
|
||||
return x_38;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_39;
|
||||
lean_dec(x_25);
|
||||
lean_dec(x_24);
|
||||
x_39 = !lean_is_exclusive(x_18);
|
||||
if (x_39 == 0)
|
||||
{
|
||||
lean_object* x_40;
|
||||
x_40 = lean_ctor_get(x_18, 0);
|
||||
lean_dec(x_40);
|
||||
lean_ctor_set(x_18, 0, x_1);
|
||||
return x_18;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_41; lean_object* x_42;
|
||||
x_41 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_41);
|
||||
lean_dec(x_18);
|
||||
x_42 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_42, 0, x_1);
|
||||
lean_ctor_set(x_42, 1, x_41);
|
||||
return x_42;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_43;
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
|
|
@ -3499,23 +3618,23 @@ lean_dec(x_5);
|
|||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_1);
|
||||
x_28 = !lean_is_exclusive(x_11);
|
||||
if (x_28 == 0)
|
||||
x_43 = !lean_is_exclusive(x_11);
|
||||
if (x_43 == 0)
|
||||
{
|
||||
return x_11;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
x_29 = lean_ctor_get(x_11, 0);
|
||||
x_30 = lean_ctor_get(x_11, 1);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_29);
|
||||
lean_object* x_44; lean_object* x_45; lean_object* x_46;
|
||||
x_44 = lean_ctor_get(x_11, 0);
|
||||
x_45 = lean_ctor_get(x_11, 1);
|
||||
lean_inc(x_45);
|
||||
lean_inc(x_44);
|
||||
lean_dec(x_11);
|
||||
x_31 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
x_46 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_46, 0, x_44);
|
||||
lean_ctor_set(x_46, 1, x_45);
|
||||
return x_46;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3567,18 +3686,18 @@ lean_dec(x_1);
|
|||
return x_16;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_PrettyPrinter_Delaborator_unresolveNameGlobal___lambda__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_EXPORT lean_object* l_Lean_PrettyPrinter_Delaborator_unresolveNameGlobal___lambda__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) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_11;
|
||||
x_11 = l_Lean_PrettyPrinter_Delaborator_unresolveNameGlobal___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10);
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_7);
|
||||
lean_object* x_10;
|
||||
x_10 = l_Lean_PrettyPrinter_Delaborator_unresolveNameGlobal___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
return x_11;
|
||||
lean_dec(x_2);
|
||||
return x_10;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_PrettyPrinter_Delaborator_delabConst___spec__1(size_t x_1, size_t x_2, lean_object* x_3) {
|
||||
|
|
@ -3643,7 +3762,7 @@ _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 = l_Lean_PrettyPrinter_Delaborator_delabFVar___closed__1;
|
||||
x_2 = l_Lean_PrettyPrinter_Delaborator_delabConst___closed__1;
|
||||
x_3 = lean_unsigned_to_nat(86u);
|
||||
x_3 = lean_unsigned_to_nat(89u);
|
||||
x_4 = lean_unsigned_to_nat(37u);
|
||||
x_5 = l_Lean_PrettyPrinter_Delaborator_delabFVar___closed__3;
|
||||
x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5);
|
||||
|
|
@ -9268,7 +9387,7 @@ _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 = l_Lean_PrettyPrinter_Delaborator_delabFVar___closed__1;
|
||||
x_2 = l_Lean_PrettyPrinter_Delaborator_unexpandRegularApp___closed__1;
|
||||
x_3 = lean_unsigned_to_nat(189u);
|
||||
x_3 = lean_unsigned_to_nat(192u);
|
||||
x_4 = lean_unsigned_to_nat(67u);
|
||||
x_5 = l_Lean_PrettyPrinter_Delaborator_delabFVar___closed__3;
|
||||
x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5);
|
||||
|
|
@ -18741,7 +18860,7 @@ _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 = l_Lean_PrettyPrinter_Delaborator_delabFVar___closed__1;
|
||||
x_2 = l_Lean_PrettyPrinter_Delaborator_delabLetFun___lambda__1___closed__1;
|
||||
x_3 = lean_unsigned_to_nat(416u);
|
||||
x_3 = lean_unsigned_to_nat(419u);
|
||||
x_4 = lean_unsigned_to_nat(37u);
|
||||
x_5 = l_Lean_PrettyPrinter_Delaborator_delabFVar___closed__3;
|
||||
x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5);
|
||||
|
|
@ -21949,7 +22068,7 @@ _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 = l_Lean_PrettyPrinter_Delaborator_delabFVar___closed__1;
|
||||
x_2 = l_Lean_PrettyPrinter_Delaborator_delabLam___lambda__3___closed__12;
|
||||
x_3 = lean_unsigned_to_nat(534u);
|
||||
x_3 = lean_unsigned_to_nat(537u);
|
||||
x_4 = lean_unsigned_to_nat(44u);
|
||||
x_5 = l_Lean_PrettyPrinter_Delaborator_delabFVar___closed__3;
|
||||
x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5);
|
||||
|
|
@ -24955,7 +25074,7 @@ _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 = l_Lean_PrettyPrinter_Delaborator_delabFVar___closed__1;
|
||||
x_2 = l_Lean_PrettyPrinter_Delaborator_delabLetE___closed__1;
|
||||
x_3 = lean_unsigned_to_nat(571u);
|
||||
x_3 = lean_unsigned_to_nat(574u);
|
||||
x_4 = lean_unsigned_to_nat(38u);
|
||||
x_5 = l_Lean_PrettyPrinter_Delaborator_delabFVar___closed__3;
|
||||
x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5);
|
||||
|
|
@ -25709,7 +25828,7 @@ _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 = l_Lean_PrettyPrinter_Delaborator_delabFVar___closed__1;
|
||||
x_2 = l_Lean_PrettyPrinter_Delaborator_delabLit___closed__1;
|
||||
x_3 = lean_unsigned_to_nat(584u);
|
||||
x_3 = lean_unsigned_to_nat(587u);
|
||||
x_4 = lean_unsigned_to_nat(31u);
|
||||
x_5 = l_Lean_PrettyPrinter_Delaborator_delabFVar___closed__3;
|
||||
x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5);
|
||||
|
|
@ -26857,7 +26976,7 @@ _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 = l_Lean_PrettyPrinter_Delaborator_delabFVar___closed__1;
|
||||
x_2 = l_Lean_PrettyPrinter_Delaborator_delabProj___closed__1;
|
||||
x_3 = lean_unsigned_to_nat(623u);
|
||||
x_3 = lean_unsigned_to_nat(626u);
|
||||
x_4 = lean_unsigned_to_nat(38u);
|
||||
x_5 = l_Lean_PrettyPrinter_Delaborator_delabFVar___closed__3;
|
||||
x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5);
|
||||
|
|
@ -30373,7 +30492,7 @@ _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 = l_Lean_PrettyPrinter_Delaborator_delabFVar___closed__1;
|
||||
x_2 = l_Lean_PrettyPrinter_Delaborator_delabDoElems___closed__5;
|
||||
x_3 = lean_unsigned_to_nat(715u);
|
||||
x_3 = lean_unsigned_to_nat(718u);
|
||||
x_4 = lean_unsigned_to_nat(40u);
|
||||
x_5 = l_Lean_PrettyPrinter_Delaborator_delabFVar___closed__3;
|
||||
x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5);
|
||||
|
|
|
|||
2
stage0/stdlib/Lean/PrettyPrinter/Formatter.c
generated
2
stage0/stdlib/Lean/PrettyPrinter/Formatter.c
generated
|
|
@ -6044,8 +6044,6 @@ lean_ctor_set(x_11, 0, x_1);
|
|||
lean_ctor_set(x_11, 1, x_8);
|
||||
lean_ctor_set(x_11, 2, x_10);
|
||||
x_12 = l_Substring_beq(x_11, x_9);
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_11);
|
||||
if (x_12 == 0)
|
||||
{
|
||||
lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
|
|
|
|||
689
stage0/stdlib/Lean/Server/AsyncList.c
generated
689
stage0/stdlib/Lean/Server/AsyncList.c
generated
|
|
@ -766,11 +766,14 @@ return x_18;
|
|||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_19; lean_object* x_20; uint8_t x_21;
|
||||
lean_object* x_19; lean_object* x_20;
|
||||
x_19 = lean_ctor_get(x_3, 0);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_3);
|
||||
x_20 = l_IO_AsyncList_waitAll___rarg(x_1, x_2, x_19, x_4);
|
||||
if (lean_obj_tag(x_20) == 0)
|
||||
{
|
||||
uint8_t x_21;
|
||||
x_21 = !lean_is_exclusive(x_20);
|
||||
if (x_21 == 0)
|
||||
{
|
||||
|
|
@ -799,6 +802,29 @@ lean_ctor_set(x_31, 1, x_27);
|
|||
return x_31;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_32;
|
||||
x_32 = !lean_is_exclusive(x_20);
|
||||
if (x_32 == 0)
|
||||
{
|
||||
return x_20;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_33; lean_object* x_34; lean_object* x_35;
|
||||
x_33 = lean_ctor_get(x_20, 0);
|
||||
x_34 = lean_ctor_get(x_20, 1);
|
||||
lean_inc(x_34);
|
||||
lean_inc(x_33);
|
||||
lean_dec(x_20);
|
||||
x_35 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_35, 0, x_33);
|
||||
lean_ctor_set(x_35, 1, x_34);
|
||||
return x_35;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_IO_AsyncList_waitAll___rarg___lambda__4(lean_object* x_1, lean_object* x_2) {
|
||||
|
|
@ -878,8 +904,11 @@ return x_14;
|
|||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_15; uint8_t x_16;
|
||||
lean_object* x_15;
|
||||
x_15 = l_IO_AsyncList_waitAll___rarg(x_1, x_2, x_6, x_4);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
uint8_t x_16;
|
||||
x_16 = !lean_is_exclusive(x_15);
|
||||
if (x_16 == 0)
|
||||
{
|
||||
|
|
@ -910,57 +939,108 @@ lean_ctor_set(x_26, 1, x_22);
|
|||
return x_26;
|
||||
}
|
||||
}
|
||||
}
|
||||
case 1:
|
||||
else
|
||||
{
|
||||
lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; uint8_t x_31;
|
||||
x_27 = lean_ctor_get(x_3, 0);
|
||||
lean_inc(x_27);
|
||||
lean_dec(x_3);
|
||||
lean_inc(x_1);
|
||||
x_28 = lean_alloc_closure((void*)(l_IO_AsyncList_waitAll___rarg___lambda__3), 4, 2);
|
||||
lean_closure_set(x_28, 0, x_1);
|
||||
lean_closure_set(x_28, 1, x_2);
|
||||
x_29 = l_Task_Priority_default;
|
||||
x_30 = lean_io_bind_task(x_27, x_28, x_29, x_4);
|
||||
x_31 = !lean_is_exclusive(x_30);
|
||||
if (x_31 == 0)
|
||||
uint8_t x_27;
|
||||
lean_dec(x_5);
|
||||
x_27 = !lean_is_exclusive(x_15);
|
||||
if (x_27 == 0)
|
||||
{
|
||||
lean_object* x_32; lean_object* x_33; lean_object* x_34;
|
||||
x_32 = lean_ctor_get(x_30, 0);
|
||||
x_33 = lean_alloc_closure((void*)(l_IO_AsyncList_waitAll___rarg___lambda__4), 2, 1);
|
||||
lean_closure_set(x_33, 0, x_1);
|
||||
x_34 = lean_task_map(x_33, x_32, x_29);
|
||||
lean_ctor_set(x_30, 0, x_34);
|
||||
return x_30;
|
||||
return x_15;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39;
|
||||
x_35 = lean_ctor_get(x_30, 0);
|
||||
x_36 = lean_ctor_get(x_30, 1);
|
||||
lean_inc(x_36);
|
||||
lean_inc(x_35);
|
||||
lean_dec(x_30);
|
||||
lean_object* x_28; lean_object* x_29; lean_object* x_30;
|
||||
x_28 = lean_ctor_get(x_15, 0);
|
||||
x_29 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_29);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_15);
|
||||
x_30 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_30, 0, x_28);
|
||||
lean_ctor_set(x_30, 1, x_29);
|
||||
return x_30;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34;
|
||||
x_31 = lean_ctor_get(x_3, 0);
|
||||
lean_inc(x_31);
|
||||
lean_dec(x_3);
|
||||
lean_inc(x_1);
|
||||
x_32 = lean_alloc_closure((void*)(l_IO_AsyncList_waitAll___rarg___lambda__3), 4, 2);
|
||||
lean_closure_set(x_32, 0, x_1);
|
||||
lean_closure_set(x_32, 1, x_2);
|
||||
x_33 = l_Task_Priority_default;
|
||||
x_34 = lean_io_bind_task(x_31, x_32, x_33, x_4);
|
||||
if (lean_obj_tag(x_34) == 0)
|
||||
{
|
||||
uint8_t x_35;
|
||||
x_35 = !lean_is_exclusive(x_34);
|
||||
if (x_35 == 0)
|
||||
{
|
||||
lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_36 = lean_ctor_get(x_34, 0);
|
||||
x_37 = lean_alloc_closure((void*)(l_IO_AsyncList_waitAll___rarg___lambda__4), 2, 1);
|
||||
lean_closure_set(x_37, 0, x_1);
|
||||
x_38 = lean_task_map(x_37, x_35, x_29);
|
||||
x_39 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_39, 0, x_38);
|
||||
lean_ctor_set(x_39, 1, x_36);
|
||||
return x_39;
|
||||
x_38 = lean_task_map(x_37, x_36, x_33);
|
||||
lean_ctor_set(x_34, 0, x_38);
|
||||
return x_34;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43;
|
||||
x_39 = lean_ctor_get(x_34, 0);
|
||||
x_40 = lean_ctor_get(x_34, 1);
|
||||
lean_inc(x_40);
|
||||
lean_inc(x_39);
|
||||
lean_dec(x_34);
|
||||
x_41 = lean_alloc_closure((void*)(l_IO_AsyncList_waitAll___rarg___lambda__4), 2, 1);
|
||||
lean_closure_set(x_41, 0, x_1);
|
||||
x_42 = lean_task_map(x_41, x_39, x_33);
|
||||
x_43 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_43, 0, x_42);
|
||||
lean_ctor_set(x_43, 1, x_40);
|
||||
return x_43;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_44;
|
||||
lean_dec(x_1);
|
||||
x_44 = !lean_is_exclusive(x_34);
|
||||
if (x_44 == 0)
|
||||
{
|
||||
return x_34;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_45; lean_object* x_46; lean_object* x_47;
|
||||
x_45 = lean_ctor_get(x_34, 0);
|
||||
x_46 = lean_ctor_get(x_34, 1);
|
||||
lean_inc(x_46);
|
||||
lean_inc(x_45);
|
||||
lean_dec(x_34);
|
||||
x_47 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_47, 0, x_45);
|
||||
lean_ctor_set(x_47, 1, x_46);
|
||||
return x_47;
|
||||
}
|
||||
}
|
||||
}
|
||||
default:
|
||||
{
|
||||
lean_object* x_40; lean_object* x_41;
|
||||
lean_object* x_48; lean_object* x_49;
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_40 = l_IO_AsyncList_waitAll___rarg___closed__1;
|
||||
x_41 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_41, 0, x_40);
|
||||
lean_ctor_set(x_41, 1, x_4);
|
||||
return x_41;
|
||||
x_48 = l_IO_AsyncList_waitAll___rarg___closed__1;
|
||||
x_49 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_49, 0, x_48);
|
||||
lean_ctor_set(x_49, 1, x_4);
|
||||
return x_49;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1012,11 +1092,14 @@ return x_13;
|
|||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_14; lean_object* x_15; uint8_t x_16;
|
||||
lean_object* x_14; lean_object* x_15;
|
||||
x_14 = lean_ctor_get(x_3, 0);
|
||||
lean_inc(x_14);
|
||||
lean_dec(x_3);
|
||||
x_15 = l_IO_AsyncList_waitFind_x3f___rarg(x_1, x_2, x_14, x_4);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
uint8_t x_16;
|
||||
x_16 = !lean_is_exclusive(x_15);
|
||||
if (x_16 == 0)
|
||||
{
|
||||
|
|
@ -1045,6 +1128,29 @@ lean_ctor_set(x_26, 1, x_22);
|
|||
return x_26;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_27;
|
||||
x_27 = !lean_is_exclusive(x_15);
|
||||
if (x_27 == 0)
|
||||
{
|
||||
return x_15;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_28; lean_object* x_29; lean_object* x_30;
|
||||
x_28 = lean_ctor_get(x_15, 0);
|
||||
x_29 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_29);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_15);
|
||||
x_30 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_30, 0, x_28);
|
||||
lean_ctor_set(x_30, 1, x_29);
|
||||
return x_30;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_IO_AsyncList_waitFind_x3f___rarg___closed__1() {
|
||||
|
|
@ -1108,7 +1214,7 @@ return x_13;
|
|||
}
|
||||
case 1:
|
||||
{
|
||||
lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18;
|
||||
lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_14 = lean_ctor_get(x_3, 0);
|
||||
lean_inc(x_14);
|
||||
lean_dec(x_3);
|
||||
|
|
@ -1118,6 +1224,9 @@ lean_closure_set(x_15, 0, x_1);
|
|||
lean_closure_set(x_15, 1, x_2);
|
||||
x_16 = l_Task_Priority_default;
|
||||
x_17 = lean_io_bind_task(x_14, x_15, x_16, x_4);
|
||||
if (lean_obj_tag(x_17) == 0)
|
||||
{
|
||||
uint8_t x_18;
|
||||
x_18 = !lean_is_exclusive(x_17);
|
||||
if (x_18 == 0)
|
||||
{
|
||||
|
|
@ -1142,16 +1251,40 @@ lean_ctor_set(x_24, 1, x_22);
|
|||
return x_24;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_25;
|
||||
lean_dec(x_2);
|
||||
x_25 = !lean_is_exclusive(x_17);
|
||||
if (x_25 == 0)
|
||||
{
|
||||
return x_17;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_26; lean_object* x_27; lean_object* x_28;
|
||||
x_26 = lean_ctor_get(x_17, 0);
|
||||
x_27 = lean_ctor_get(x_17, 1);
|
||||
lean_inc(x_27);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_17);
|
||||
x_28 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_28, 0, x_26);
|
||||
lean_ctor_set(x_28, 1, x_27);
|
||||
return x_28;
|
||||
}
|
||||
}
|
||||
}
|
||||
default:
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26;
|
||||
lean_object* x_29; lean_object* x_30;
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_25 = l_IO_AsyncList_waitFind_x3f___rarg___closed__2;
|
||||
x_26 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
lean_ctor_set(x_26, 1, x_4);
|
||||
return x_26;
|
||||
x_29 = l_IO_AsyncList_waitFind_x3f___rarg___closed__2;
|
||||
x_30 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_30, 0, x_29);
|
||||
lean_ctor_set(x_30, 1, x_4);
|
||||
return x_30;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1186,253 +1319,339 @@ uint8_t x_3;
|
|||
x_3 = !lean_is_exclusive(x_1);
|
||||
if (x_3 == 0)
|
||||
{
|
||||
lean_object* x_4; lean_object* x_5; uint8_t x_6;
|
||||
x_4 = lean_ctor_get(x_1, 1);
|
||||
x_5 = l_IO_AsyncList_updateFinishedPrefix___rarg(x_4, x_2);
|
||||
x_6 = !lean_is_exclusive(x_5);
|
||||
if (x_6 == 0)
|
||||
lean_object* x_4; lean_object* x_5; lean_object* x_6;
|
||||
x_4 = lean_ctor_get(x_1, 0);
|
||||
x_5 = lean_ctor_get(x_1, 1);
|
||||
x_6 = l_IO_AsyncList_updateFinishedPrefix___rarg(x_5, x_2);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
{
|
||||
lean_object* x_7; uint8_t x_8;
|
||||
x_7 = lean_ctor_get(x_5, 0);
|
||||
x_8 = !lean_is_exclusive(x_7);
|
||||
if (x_8 == 0)
|
||||
uint8_t x_7;
|
||||
x_7 = !lean_is_exclusive(x_6);
|
||||
if (x_7 == 0)
|
||||
{
|
||||
lean_object* x_9;
|
||||
x_9 = lean_ctor_get(x_7, 0);
|
||||
lean_ctor_set(x_1, 1, x_9);
|
||||
lean_ctor_set(x_7, 0, x_1);
|
||||
return x_5;
|
||||
}
|
||||
else
|
||||
lean_object* x_8; uint8_t x_9;
|
||||
x_8 = lean_ctor_get(x_6, 0);
|
||||
x_9 = !lean_is_exclusive(x_8);
|
||||
if (x_9 == 0)
|
||||
{
|
||||
lean_object* x_10; lean_object* x_11; lean_object* x_12;
|
||||
x_10 = lean_ctor_get(x_7, 0);
|
||||
x_11 = lean_ctor_get(x_7, 1);
|
||||
lean_inc(x_11);
|
||||
lean_inc(x_10);
|
||||
lean_dec(x_7);
|
||||
lean_object* x_10;
|
||||
x_10 = lean_ctor_get(x_8, 0);
|
||||
lean_ctor_set(x_1, 1, x_10);
|
||||
x_12 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_12, 0, x_1);
|
||||
lean_ctor_set(x_12, 1, x_11);
|
||||
lean_ctor_set(x_5, 0, x_12);
|
||||
return x_5;
|
||||
lean_ctor_set(x_8, 0, x_1);
|
||||
return x_6;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_11; lean_object* x_12; lean_object* x_13;
|
||||
x_11 = lean_ctor_get(x_8, 0);
|
||||
x_12 = lean_ctor_get(x_8, 1);
|
||||
lean_inc(x_12);
|
||||
lean_inc(x_11);
|
||||
lean_dec(x_8);
|
||||
lean_ctor_set(x_1, 1, x_11);
|
||||
x_13 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_13, 0, x_1);
|
||||
lean_ctor_set(x_13, 1, x_12);
|
||||
lean_ctor_set(x_6, 0, x_13);
|
||||
return x_6;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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;
|
||||
x_13 = lean_ctor_get(x_5, 0);
|
||||
x_14 = lean_ctor_get(x_5, 1);
|
||||
lean_inc(x_14);
|
||||
lean_inc(x_13);
|
||||
lean_dec(x_5);
|
||||
x_15 = lean_ctor_get(x_13, 0);
|
||||
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;
|
||||
x_14 = lean_ctor_get(x_6, 0);
|
||||
x_15 = lean_ctor_get(x_6, 1);
|
||||
lean_inc(x_15);
|
||||
x_16 = lean_ctor_get(x_13, 1);
|
||||
lean_inc(x_14);
|
||||
lean_dec(x_6);
|
||||
x_16 = lean_ctor_get(x_14, 0);
|
||||
lean_inc(x_16);
|
||||
if (lean_is_exclusive(x_13)) {
|
||||
lean_ctor_release(x_13, 0);
|
||||
lean_ctor_release(x_13, 1);
|
||||
x_17 = x_13;
|
||||
x_17 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_17);
|
||||
if (lean_is_exclusive(x_14)) {
|
||||
lean_ctor_release(x_14, 0);
|
||||
lean_ctor_release(x_14, 1);
|
||||
x_18 = x_14;
|
||||
} else {
|
||||
lean_dec_ref(x_13);
|
||||
x_17 = lean_box(0);
|
||||
lean_dec_ref(x_14);
|
||||
x_18 = lean_box(0);
|
||||
}
|
||||
lean_ctor_set(x_1, 1, x_15);
|
||||
if (lean_is_scalar(x_17)) {
|
||||
x_18 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_1, 1, x_16);
|
||||
if (lean_is_scalar(x_18)) {
|
||||
x_19 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_18 = x_17;
|
||||
x_19 = x_18;
|
||||
}
|
||||
lean_ctor_set(x_18, 0, x_1);
|
||||
lean_ctor_set(x_18, 1, x_16);
|
||||
x_19 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_19, 0, x_18);
|
||||
lean_ctor_set(x_19, 1, x_14);
|
||||
return x_19;
|
||||
lean_ctor_set(x_19, 0, x_1);
|
||||
lean_ctor_set(x_19, 1, x_17);
|
||||
x_20 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_20, 0, x_19);
|
||||
lean_ctor_set(x_20, 1, x_15);
|
||||
return x_20;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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_29; lean_object* x_30; lean_object* x_31;
|
||||
x_20 = lean_ctor_get(x_1, 0);
|
||||
x_21 = lean_ctor_get(x_1, 1);
|
||||
lean_inc(x_21);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_1);
|
||||
x_22 = l_IO_AsyncList_updateFinishedPrefix___rarg(x_21, x_2);
|
||||
x_23 = lean_ctor_get(x_22, 0);
|
||||
uint8_t x_21;
|
||||
lean_free_object(x_1);
|
||||
lean_dec(x_4);
|
||||
x_21 = !lean_is_exclusive(x_6);
|
||||
if (x_21 == 0)
|
||||
{
|
||||
return x_6;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_22; lean_object* x_23; lean_object* x_24;
|
||||
x_22 = lean_ctor_get(x_6, 0);
|
||||
x_23 = lean_ctor_get(x_6, 1);
|
||||
lean_inc(x_23);
|
||||
x_24 = lean_ctor_get(x_22, 1);
|
||||
lean_inc(x_24);
|
||||
if (lean_is_exclusive(x_22)) {
|
||||
lean_ctor_release(x_22, 0);
|
||||
lean_ctor_release(x_22, 1);
|
||||
x_25 = x_22;
|
||||
} else {
|
||||
lean_dec_ref(x_22);
|
||||
x_25 = lean_box(0);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_6);
|
||||
x_24 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_24, 0, x_22);
|
||||
lean_ctor_set(x_24, 1, x_23);
|
||||
return x_24;
|
||||
}
|
||||
x_26 = lean_ctor_get(x_23, 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_1, 0);
|
||||
x_26 = lean_ctor_get(x_1, 1);
|
||||
lean_inc(x_26);
|
||||
x_27 = lean_ctor_get(x_23, 1);
|
||||
lean_inc(x_27);
|
||||
if (lean_is_exclusive(x_23)) {
|
||||
lean_ctor_release(x_23, 0);
|
||||
lean_ctor_release(x_23, 1);
|
||||
x_28 = x_23;
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_1);
|
||||
x_27 = l_IO_AsyncList_updateFinishedPrefix___rarg(x_26, x_2);
|
||||
if (lean_obj_tag(x_27) == 0)
|
||||
{
|
||||
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;
|
||||
x_28 = lean_ctor_get(x_27, 0);
|
||||
lean_inc(x_28);
|
||||
x_29 = lean_ctor_get(x_27, 1);
|
||||
lean_inc(x_29);
|
||||
if (lean_is_exclusive(x_27)) {
|
||||
lean_ctor_release(x_27, 0);
|
||||
lean_ctor_release(x_27, 1);
|
||||
x_30 = x_27;
|
||||
} else {
|
||||
lean_dec_ref(x_23);
|
||||
x_28 = lean_box(0);
|
||||
lean_dec_ref(x_27);
|
||||
x_30 = lean_box(0);
|
||||
}
|
||||
x_29 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_29, 0, x_20);
|
||||
lean_ctor_set(x_29, 1, x_26);
|
||||
if (lean_is_scalar(x_28)) {
|
||||
x_30 = lean_alloc_ctor(0, 2, 0);
|
||||
x_31 = lean_ctor_get(x_28, 0);
|
||||
lean_inc(x_31);
|
||||
x_32 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_32);
|
||||
if (lean_is_exclusive(x_28)) {
|
||||
lean_ctor_release(x_28, 0);
|
||||
lean_ctor_release(x_28, 1);
|
||||
x_33 = x_28;
|
||||
} else {
|
||||
x_30 = x_28;
|
||||
lean_dec_ref(x_28);
|
||||
x_33 = lean_box(0);
|
||||
}
|
||||
lean_ctor_set(x_30, 0, x_29);
|
||||
lean_ctor_set(x_30, 1, x_27);
|
||||
if (lean_is_scalar(x_25)) {
|
||||
x_31 = lean_alloc_ctor(0, 2, 0);
|
||||
x_34 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_34, 0, x_25);
|
||||
lean_ctor_set(x_34, 1, x_31);
|
||||
if (lean_is_scalar(x_33)) {
|
||||
x_35 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_31 = x_25;
|
||||
x_35 = x_33;
|
||||
}
|
||||
lean_ctor_set(x_35, 0, x_34);
|
||||
lean_ctor_set(x_35, 1, x_32);
|
||||
if (lean_is_scalar(x_30)) {
|
||||
x_36 = lean_alloc_ctor(0, 2, 0);
|
||||
} else {
|
||||
x_36 = x_30;
|
||||
}
|
||||
lean_ctor_set(x_36, 0, x_35);
|
||||
lean_ctor_set(x_36, 1, x_29);
|
||||
return x_36;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40;
|
||||
lean_dec(x_25);
|
||||
x_37 = lean_ctor_get(x_27, 0);
|
||||
lean_inc(x_37);
|
||||
x_38 = lean_ctor_get(x_27, 1);
|
||||
lean_inc(x_38);
|
||||
if (lean_is_exclusive(x_27)) {
|
||||
lean_ctor_release(x_27, 0);
|
||||
lean_ctor_release(x_27, 1);
|
||||
x_39 = x_27;
|
||||
} else {
|
||||
lean_dec_ref(x_27);
|
||||
x_39 = lean_box(0);
|
||||
}
|
||||
if (lean_is_scalar(x_39)) {
|
||||
x_40 = lean_alloc_ctor(1, 2, 0);
|
||||
} else {
|
||||
x_40 = x_39;
|
||||
}
|
||||
lean_ctor_set(x_40, 0, x_37);
|
||||
lean_ctor_set(x_40, 1, x_38);
|
||||
return x_40;
|
||||
}
|
||||
lean_ctor_set(x_31, 0, x_30);
|
||||
lean_ctor_set(x_31, 1, x_24);
|
||||
return x_31;
|
||||
}
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
lean_object* x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35;
|
||||
x_32 = lean_ctor_get(x_1, 0);
|
||||
lean_inc(x_32);
|
||||
x_33 = lean_io_has_finished(x_32, x_2);
|
||||
x_34 = lean_ctor_get(x_33, 0);
|
||||
lean_inc(x_34);
|
||||
x_35 = lean_unbox(x_34);
|
||||
lean_dec(x_34);
|
||||
if (x_35 == 0)
|
||||
lean_object* x_41; lean_object* x_42;
|
||||
x_41 = lean_ctor_get(x_1, 0);
|
||||
lean_inc(x_41);
|
||||
x_42 = lean_io_has_finished(x_41, x_2);
|
||||
if (lean_obj_tag(x_42) == 0)
|
||||
{
|
||||
uint8_t x_36;
|
||||
lean_dec(x_32);
|
||||
x_36 = !lean_is_exclusive(x_33);
|
||||
if (x_36 == 0)
|
||||
{
|
||||
lean_object* x_37; lean_object* x_38; lean_object* x_39;
|
||||
x_37 = lean_ctor_get(x_33, 0);
|
||||
lean_dec(x_37);
|
||||
x_38 = lean_box(0);
|
||||
x_39 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_39, 0, x_1);
|
||||
lean_ctor_set(x_39, 1, x_38);
|
||||
lean_ctor_set(x_33, 0, x_39);
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43;
|
||||
x_40 = lean_ctor_get(x_33, 1);
|
||||
lean_inc(x_40);
|
||||
lean_dec(x_33);
|
||||
x_41 = lean_box(0);
|
||||
x_42 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_42, 0, x_1);
|
||||
lean_ctor_set(x_42, 1, x_41);
|
||||
x_43 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_43, 0, x_42);
|
||||
lean_ctor_set(x_43, 1, x_40);
|
||||
return x_43;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_44;
|
||||
lean_dec(x_1);
|
||||
x_44 = !lean_is_exclusive(x_33);
|
||||
lean_object* x_43; uint8_t x_44;
|
||||
x_43 = lean_ctor_get(x_42, 0);
|
||||
lean_inc(x_43);
|
||||
x_44 = lean_unbox(x_43);
|
||||
lean_dec(x_43);
|
||||
if (x_44 == 0)
|
||||
{
|
||||
lean_object* x_45; lean_object* x_46; lean_object* x_47;
|
||||
x_45 = lean_ctor_get(x_33, 1);
|
||||
x_46 = lean_ctor_get(x_33, 0);
|
||||
uint8_t x_45;
|
||||
lean_dec(x_41);
|
||||
x_45 = !lean_is_exclusive(x_42);
|
||||
if (x_45 == 0)
|
||||
{
|
||||
lean_object* x_46; lean_object* x_47; lean_object* x_48;
|
||||
x_46 = lean_ctor_get(x_42, 0);
|
||||
lean_dec(x_46);
|
||||
x_47 = lean_task_get_own(x_32);
|
||||
if (lean_obj_tag(x_47) == 0)
|
||||
x_47 = lean_box(0);
|
||||
x_48 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_48, 0, x_1);
|
||||
lean_ctor_set(x_48, 1, x_47);
|
||||
lean_ctor_set(x_42, 0, x_48);
|
||||
return x_42;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51;
|
||||
x_48 = lean_ctor_get(x_47, 0);
|
||||
lean_inc(x_48);
|
||||
lean_dec(x_47);
|
||||
x_49 = lean_box(2);
|
||||
x_50 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_50, 0, x_48);
|
||||
lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52;
|
||||
x_49 = lean_ctor_get(x_42, 1);
|
||||
lean_inc(x_49);
|
||||
lean_dec(x_42);
|
||||
x_50 = lean_box(0);
|
||||
x_51 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_51, 0, x_49);
|
||||
lean_ctor_set(x_51, 0, x_1);
|
||||
lean_ctor_set(x_51, 1, x_50);
|
||||
lean_ctor_set(x_33, 0, x_51);
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_52;
|
||||
lean_free_object(x_33);
|
||||
x_52 = lean_ctor_get(x_47, 0);
|
||||
lean_inc(x_52);
|
||||
lean_dec(x_47);
|
||||
x_1 = x_52;
|
||||
x_2 = x_45;
|
||||
goto _start;
|
||||
x_52 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_52, 0, x_51);
|
||||
lean_ctor_set(x_52, 1, x_49);
|
||||
return x_52;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_54; lean_object* x_55;
|
||||
x_54 = lean_ctor_get(x_33, 1);
|
||||
lean_inc(x_54);
|
||||
lean_dec(x_33);
|
||||
x_55 = lean_task_get_own(x_32);
|
||||
if (lean_obj_tag(x_55) == 0)
|
||||
uint8_t x_53;
|
||||
lean_dec(x_1);
|
||||
x_53 = !lean_is_exclusive(x_42);
|
||||
if (x_53 == 0)
|
||||
{
|
||||
lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60;
|
||||
x_56 = lean_ctor_get(x_55, 0);
|
||||
lean_inc(x_56);
|
||||
lean_object* x_54; lean_object* x_55; lean_object* x_56;
|
||||
x_54 = lean_ctor_get(x_42, 1);
|
||||
x_55 = lean_ctor_get(x_42, 0);
|
||||
lean_dec(x_55);
|
||||
x_57 = lean_box(2);
|
||||
x_58 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_58, 0, x_56);
|
||||
x_59 = lean_alloc_ctor(0, 2, 0);
|
||||
x_56 = lean_task_get_own(x_41);
|
||||
if (lean_obj_tag(x_56) == 0)
|
||||
{
|
||||
lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60;
|
||||
x_57 = lean_ctor_get(x_56, 0);
|
||||
lean_inc(x_57);
|
||||
lean_dec(x_56);
|
||||
x_58 = lean_box(2);
|
||||
x_59 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_59, 0, x_57);
|
||||
lean_ctor_set(x_59, 1, x_58);
|
||||
x_60 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_60, 0, x_59);
|
||||
lean_ctor_set(x_60, 1, x_54);
|
||||
return x_60;
|
||||
lean_ctor_set(x_60, 0, x_58);
|
||||
lean_ctor_set(x_60, 1, x_59);
|
||||
lean_ctor_set(x_42, 0, x_60);
|
||||
return x_42;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_61;
|
||||
x_61 = lean_ctor_get(x_55, 0);
|
||||
lean_free_object(x_42);
|
||||
x_61 = lean_ctor_get(x_56, 0);
|
||||
lean_inc(x_61);
|
||||
lean_dec(x_55);
|
||||
lean_dec(x_56);
|
||||
x_1 = x_61;
|
||||
x_2 = x_54;
|
||||
goto _start;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_63; lean_object* x_64;
|
||||
x_63 = lean_ctor_get(x_42, 1);
|
||||
lean_inc(x_63);
|
||||
lean_dec(x_42);
|
||||
x_64 = lean_task_get_own(x_41);
|
||||
if (lean_obj_tag(x_64) == 0)
|
||||
{
|
||||
lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69;
|
||||
x_65 = lean_ctor_get(x_64, 0);
|
||||
lean_inc(x_65);
|
||||
lean_dec(x_64);
|
||||
x_66 = lean_box(2);
|
||||
x_67 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_67, 0, x_65);
|
||||
x_68 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_68, 0, x_66);
|
||||
lean_ctor_set(x_68, 1, x_67);
|
||||
x_69 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_69, 0, x_68);
|
||||
lean_ctor_set(x_69, 1, x_63);
|
||||
return x_69;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_70;
|
||||
x_70 = lean_ctor_get(x_64, 0);
|
||||
lean_inc(x_70);
|
||||
lean_dec(x_64);
|
||||
x_1 = x_70;
|
||||
x_2 = x_63;
|
||||
goto _start;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_72;
|
||||
lean_dec(x_41);
|
||||
lean_dec(x_1);
|
||||
x_72 = !lean_is_exclusive(x_42);
|
||||
if (x_72 == 0)
|
||||
{
|
||||
return x_42;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_73; lean_object* x_74; lean_object* x_75;
|
||||
x_73 = lean_ctor_get(x_42, 0);
|
||||
x_74 = lean_ctor_get(x_42, 1);
|
||||
lean_inc(x_74);
|
||||
lean_inc(x_73);
|
||||
lean_dec(x_42);
|
||||
x_75 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_75, 0, x_73);
|
||||
lean_ctor_set(x_75, 1, x_74);
|
||||
return x_75;
|
||||
}
|
||||
}
|
||||
}
|
||||
default:
|
||||
{
|
||||
lean_object* x_63; lean_object* x_64;
|
||||
x_63 = l_IO_AsyncList_updateFinishedPrefix___rarg___closed__1;
|
||||
x_64 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_64, 0, x_63);
|
||||
lean_ctor_set(x_64, 1, x_2);
|
||||
return x_64;
|
||||
lean_object* x_76; lean_object* x_77;
|
||||
x_76 = l_IO_AsyncList_updateFinishedPrefix___rarg___closed__1;
|
||||
x_77 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_77, 0, x_76);
|
||||
lean_ctor_set(x_77, 1, x_2);
|
||||
return x_77;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
675
stage0/stdlib/Lean/Server/FileWorker.c
generated
675
stage0/stdlib/Lean/Server/FileWorker.c
generated
|
|
@ -63,7 +63,6 @@ static lean_object* l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__3;
|
|||
LEAN_EXPORT lean_object* l_panic___at_Lean_Server_FileWorker_updateDocument___spec__2(lean_object*);
|
||||
lean_object* l_Lean_Option_get___at_Lean_initFn____x40_Lean_Util_PPExt___hyg_245____spec__1(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Server_FileWorker_compileHeader___lambda__1___closed__4;
|
||||
extern lean_object* l_Lean_searchPathRef;
|
||||
uint8_t l_Lean_Syntax_structEq(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_compileHeader___spec__5(lean_object*, size_t, size_t, lean_object*, lean_object*);
|
||||
static lean_object* l_IO_FS_Stream_readLspRequestAs___at_Lean_Server_FileWorker_initAndRunWorker___spec__1___closed__1;
|
||||
|
|
@ -78,7 +77,6 @@ lean_object* lean_st_ref_get(lean_object*, lean_object*);
|
|||
LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_CancelToken_check___at___private_Lean_Server_FileWorker_0__Lean_Server_FileWorker_nextCmdSnap___spec__1___boxed(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Std_RBNode_del___at_Lean_Server_FileWorker_mainLoop___spec__3___boxed(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_updateDocument___lambda__1___boxed(lean_object*, lean_object*);
|
||||
lean_object* l_Lean_getBuiltinSearchPath(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleRpcRelease(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleRpcConnect(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Server_FileWorker_compileHeader___lambda__1___closed__2;
|
||||
|
|
@ -258,6 +256,7 @@ static lean_object* l_Lean_Server_FileWorker_lakeSetupSearchPath_processStderr__
|
|||
LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_updatePendingRequests___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
extern lean_object* l_Lean_firstFrontendMacroScope;
|
||||
static lean_object* l_IO_FS_Stream_readRequestAs___at_Lean_Server_FileWorker_initAndRunWorker___spec__2___closed__58;
|
||||
lean_object* lean_get_prefix(lean_object*);
|
||||
static lean_object* l_IO_FS_Stream_readRequestAs___at_Lean_Server_FileWorker_initAndRunWorker___spec__2___closed__55;
|
||||
static lean_object* l_IO_FS_Stream_readRequestAs___at_Lean_Server_FileWorker_initAndRunWorker___spec__2___closed__53;
|
||||
lean_object* l_Lean_FileMap_ofString(lean_object*);
|
||||
|
|
@ -278,6 +277,7 @@ lean_object* l_IO_AsyncList_ofList___rarg(lean_object*);
|
|||
LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_parseParams___at_Lean_Server_FileWorker_handleRequest___spec__2(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_IO_FS_Stream_readRequestAs___at_Lean_Server_FileWorker_initAndRunWorker___spec__2___closed__42;
|
||||
lean_object* l_Lean_Server_Snapshots_Snapshot_diagnostics(lean_object*);
|
||||
lean_object* l_Lean_initSearchPath(lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_IO_FS_Stream_readRequestAs___at_Lean_Server_FileWorker_initAndRunWorker___spec__2___closed__18;
|
||||
static lean_object* l_Lean_Server_FileWorker_handleRequest___closed__1;
|
||||
lean_object* l_Lean_Server_Snapshots_parseNextCmd(lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -320,7 +320,6 @@ LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_parseParams___at_Lean_Server_F
|
|||
LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Server_FileWorker_handleRpcRelease___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_IO_AsyncList_unfoldAsync_step___at_Lean_Server_FileWorker_unfoldCmdSnaps___spec__2(lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Server_FileWorker_initAndRunWorker___closed__3;
|
||||
lean_object* l_Lean_addSearchPathFromEnv(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_updateDocument(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_IO_FS_Stream_readRequestAs___at_Lean_Server_FileWorker_initAndRunWorker___spec__2___closed__20;
|
||||
lean_object* l___private_Lean_Data_Lsp_Communication_0__IO_FS_Stream_readLspHeader(lean_object*, lean_object*);
|
||||
|
|
@ -2223,83 +2222,75 @@ lean_dec(x_17);
|
|||
x_87 = lean_ctor_get(x_76, 0);
|
||||
lean_inc(x_87);
|
||||
lean_dec(x_76);
|
||||
x_88 = l_Lean_getBuiltinSearchPath(x_44);
|
||||
x_88 = lean_get_prefix(x_44);
|
||||
if (lean_obj_tag(x_88) == 0)
|
||||
{
|
||||
lean_object* x_89; lean_object* x_90; lean_object* x_91;
|
||||
lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92;
|
||||
x_89 = lean_ctor_get(x_88, 0);
|
||||
lean_inc(x_89);
|
||||
x_90 = lean_ctor_get(x_88, 1);
|
||||
lean_inc(x_90);
|
||||
lean_dec(x_88);
|
||||
x_91 = l_Lean_addSearchPathFromEnv(x_89, x_90);
|
||||
if (lean_obj_tag(x_91) == 0)
|
||||
x_91 = lean_ctor_get(x_87, 0);
|
||||
lean_inc(x_91);
|
||||
x_92 = l_Lean_initSearchPath(x_89, x_91, x_90);
|
||||
if (lean_obj_tag(x_92) == 0)
|
||||
{
|
||||
lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100;
|
||||
x_92 = lean_ctor_get(x_91, 0);
|
||||
lean_inc(x_92);
|
||||
x_93 = lean_ctor_get(x_91, 1);
|
||||
lean_object* x_93; lean_object* x_94; lean_object* x_95;
|
||||
x_93 = lean_ctor_get(x_92, 1);
|
||||
lean_inc(x_93);
|
||||
lean_dec(x_91);
|
||||
x_94 = lean_ctor_get(x_87, 0);
|
||||
lean_dec(x_92);
|
||||
x_94 = lean_ctor_get(x_87, 1);
|
||||
lean_inc(x_94);
|
||||
x_95 = l_List_appendTR___rarg(x_94, x_92);
|
||||
x_96 = l_Lean_searchPathRef;
|
||||
x_97 = lean_st_ref_set(x_96, x_95, x_93);
|
||||
x_98 = lean_ctor_get(x_97, 1);
|
||||
lean_dec(x_87);
|
||||
x_95 = l_List_mapM___at_Lean_Server_FileWorker_lakeSetupSearchPath___spec__3(x_94, x_93);
|
||||
return x_95;
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_96;
|
||||
lean_dec(x_87);
|
||||
x_96 = !lean_is_exclusive(x_92);
|
||||
if (x_96 == 0)
|
||||
{
|
||||
return x_92;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_97; lean_object* x_98; lean_object* x_99;
|
||||
x_97 = lean_ctor_get(x_92, 0);
|
||||
x_98 = lean_ctor_get(x_92, 1);
|
||||
lean_inc(x_98);
|
||||
lean_dec(x_97);
|
||||
x_99 = lean_ctor_get(x_87, 1);
|
||||
lean_inc(x_99);
|
||||
lean_dec(x_87);
|
||||
x_100 = l_List_mapM___at_Lean_Server_FileWorker_lakeSetupSearchPath___spec__3(x_99, x_98);
|
||||
return x_100;
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_101;
|
||||
lean_dec(x_87);
|
||||
x_101 = !lean_is_exclusive(x_91);
|
||||
if (x_101 == 0)
|
||||
{
|
||||
return x_91;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_102; lean_object* x_103; lean_object* x_104;
|
||||
x_102 = lean_ctor_get(x_91, 0);
|
||||
x_103 = lean_ctor_get(x_91, 1);
|
||||
lean_inc(x_103);
|
||||
lean_inc(x_102);
|
||||
lean_dec(x_91);
|
||||
x_104 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_104, 0, x_102);
|
||||
lean_ctor_set(x_104, 1, x_103);
|
||||
return x_104;
|
||||
lean_inc(x_97);
|
||||
lean_dec(x_92);
|
||||
x_99 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_99, 0, x_97);
|
||||
lean_ctor_set(x_99, 1, x_98);
|
||||
return x_99;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_105;
|
||||
uint8_t x_100;
|
||||
lean_dec(x_87);
|
||||
x_105 = !lean_is_exclusive(x_88);
|
||||
if (x_105 == 0)
|
||||
x_100 = !lean_is_exclusive(x_88);
|
||||
if (x_100 == 0)
|
||||
{
|
||||
return x_88;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_106; lean_object* x_107; lean_object* x_108;
|
||||
x_106 = lean_ctor_get(x_88, 0);
|
||||
x_107 = lean_ctor_get(x_88, 1);
|
||||
lean_inc(x_107);
|
||||
lean_inc(x_106);
|
||||
lean_object* x_101; lean_object* x_102; lean_object* x_103;
|
||||
x_101 = lean_ctor_get(x_88, 0);
|
||||
x_102 = lean_ctor_get(x_88, 1);
|
||||
lean_inc(x_102);
|
||||
lean_inc(x_101);
|
||||
lean_dec(x_88);
|
||||
x_108 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_108, 0, x_106);
|
||||
lean_ctor_set(x_108, 1, x_107);
|
||||
return x_108;
|
||||
x_103 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_103, 0, x_101);
|
||||
lean_ctor_set(x_103, 1, x_102);
|
||||
return x_103;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2308,199 +2299,191 @@ return x_108;
|
|||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_109; lean_object* x_110; uint32_t x_111; uint32_t x_112; uint8_t x_113;
|
||||
x_109 = lean_ctor_get(x_41, 0);
|
||||
x_110 = lean_ctor_get(x_41, 1);
|
||||
lean_inc(x_110);
|
||||
lean_inc(x_109);
|
||||
lean_object* x_104; lean_object* x_105; uint32_t x_106; uint32_t x_107; uint8_t x_108;
|
||||
x_104 = lean_ctor_get(x_41, 0);
|
||||
x_105 = lean_ctor_get(x_41, 1);
|
||||
lean_inc(x_105);
|
||||
lean_inc(x_104);
|
||||
lean_dec(x_41);
|
||||
x_111 = 0;
|
||||
x_112 = lean_unbox_uint32(x_109);
|
||||
x_113 = lean_uint32_dec_eq(x_112, x_111);
|
||||
if (x_113 == 0)
|
||||
x_106 = 0;
|
||||
x_107 = lean_unbox_uint32(x_104);
|
||||
x_108 = lean_uint32_dec_eq(x_107, x_106);
|
||||
if (x_108 == 0)
|
||||
{
|
||||
uint32_t x_114; uint32_t x_115; uint8_t x_116;
|
||||
x_114 = 2;
|
||||
x_115 = lean_unbox_uint32(x_109);
|
||||
lean_dec(x_109);
|
||||
x_116 = lean_uint32_dec_eq(x_115, x_114);
|
||||
if (x_116 == 0)
|
||||
uint32_t x_109; uint32_t x_110; uint8_t x_111;
|
||||
x_109 = 2;
|
||||
x_110 = lean_unbox_uint32(x_104);
|
||||
lean_dec(x_104);
|
||||
x_111 = lean_uint32_dec_eq(x_110, x_109);
|
||||
if (x_111 == 0)
|
||||
{
|
||||
lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126;
|
||||
x_117 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__6;
|
||||
x_118 = lean_string_append(x_117, x_17);
|
||||
lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121;
|
||||
x_112 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__6;
|
||||
x_113 = lean_string_append(x_112, x_17);
|
||||
lean_dec(x_17);
|
||||
x_119 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__7;
|
||||
x_120 = lean_string_append(x_118, x_119);
|
||||
x_121 = lean_string_append(x_120, x_36);
|
||||
x_114 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__7;
|
||||
x_115 = lean_string_append(x_113, x_114);
|
||||
x_116 = lean_string_append(x_115, x_36);
|
||||
lean_dec(x_36);
|
||||
x_122 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__8;
|
||||
x_123 = lean_string_append(x_121, x_122);
|
||||
x_124 = lean_string_append(x_123, x_39);
|
||||
x_117 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__8;
|
||||
x_118 = lean_string_append(x_116, x_117);
|
||||
x_119 = lean_string_append(x_118, x_39);
|
||||
lean_dec(x_39);
|
||||
x_125 = lean_string_append(x_124, x_25);
|
||||
x_126 = l_IO_throwServerError___rarg(x_125, x_110);
|
||||
return x_126;
|
||||
x_120 = lean_string_append(x_119, x_25);
|
||||
x_121 = l_IO_throwServerError___rarg(x_120, x_105);
|
||||
return x_121;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_127; lean_object* x_128;
|
||||
lean_object* x_122; lean_object* x_123;
|
||||
lean_dec(x_39);
|
||||
lean_dec(x_36);
|
||||
lean_dec(x_17);
|
||||
x_127 = lean_box(0);
|
||||
x_128 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_128, 0, x_127);
|
||||
lean_ctor_set(x_128, 1, x_110);
|
||||
return x_128;
|
||||
x_122 = lean_box(0);
|
||||
x_123 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_123, 0, x_122);
|
||||
lean_ctor_set(x_123, 1, x_105);
|
||||
return x_123;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_129; lean_object* x_130; lean_object* x_131;
|
||||
lean_dec(x_109);
|
||||
x_129 = l_String_split___at_Lean_stringToMessageData___spec__1(x_36);
|
||||
lean_object* x_124; lean_object* x_125; lean_object* x_126;
|
||||
lean_dec(x_104);
|
||||
x_124 = l_String_split___at_Lean_stringToMessageData___spec__1(x_36);
|
||||
lean_dec(x_36);
|
||||
x_130 = l_List_getLast_x21___at_Lean_Server_FileWorker_lakeSetupSearchPath___spec__2(x_129);
|
||||
lean_inc(x_130);
|
||||
x_131 = l_Lean_Json_parse(x_130);
|
||||
if (lean_obj_tag(x_131) == 0)
|
||||
x_125 = l_List_getLast_x21___at_Lean_Server_FileWorker_lakeSetupSearchPath___spec__2(x_124);
|
||||
lean_inc(x_125);
|
||||
x_126 = l_Lean_Json_parse(x_125);
|
||||
if (lean_obj_tag(x_126) == 0)
|
||||
{
|
||||
lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141;
|
||||
lean_dec(x_131);
|
||||
x_132 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__9;
|
||||
x_133 = lean_string_append(x_132, x_17);
|
||||
lean_object* x_127; 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_126);
|
||||
x_127 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__9;
|
||||
x_128 = lean_string_append(x_127, x_17);
|
||||
lean_dec(x_17);
|
||||
x_134 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__10;
|
||||
x_135 = lean_string_append(x_133, x_134);
|
||||
x_136 = lean_string_append(x_135, x_130);
|
||||
lean_dec(x_130);
|
||||
x_137 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__8;
|
||||
x_138 = lean_string_append(x_136, x_137);
|
||||
x_139 = lean_string_append(x_138, x_39);
|
||||
x_129 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__10;
|
||||
x_130 = lean_string_append(x_128, x_129);
|
||||
x_131 = lean_string_append(x_130, x_125);
|
||||
lean_dec(x_125);
|
||||
x_132 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__8;
|
||||
x_133 = lean_string_append(x_131, x_132);
|
||||
x_134 = lean_string_append(x_133, x_39);
|
||||
lean_dec(x_39);
|
||||
x_140 = lean_string_append(x_139, x_25);
|
||||
x_141 = l_IO_throwServerError___rarg(x_140, x_110);
|
||||
return x_141;
|
||||
x_135 = lean_string_append(x_134, x_25);
|
||||
x_136 = l_IO_throwServerError___rarg(x_135, x_105);
|
||||
return x_136;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_142; lean_object* x_143;
|
||||
x_142 = lean_ctor_get(x_131, 0);
|
||||
lean_inc(x_142);
|
||||
lean_dec(x_131);
|
||||
x_143 = l___private_Lean_Util_Paths_0__Lean_fromJsonLeanPaths____x40_Lean_Util_Paths___hyg_63_(x_142);
|
||||
lean_dec(x_142);
|
||||
if (lean_obj_tag(x_143) == 0)
|
||||
lean_object* x_137; lean_object* x_138;
|
||||
x_137 = lean_ctor_get(x_126, 0);
|
||||
lean_inc(x_137);
|
||||
lean_dec(x_126);
|
||||
x_138 = l___private_Lean_Util_Paths_0__Lean_fromJsonLeanPaths____x40_Lean_Util_Paths___hyg_63_(x_137);
|
||||
lean_dec(x_137);
|
||||
if (lean_obj_tag(x_138) == 0)
|
||||
{
|
||||
lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153;
|
||||
lean_dec(x_143);
|
||||
x_144 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__9;
|
||||
x_145 = lean_string_append(x_144, x_17);
|
||||
lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148;
|
||||
lean_dec(x_138);
|
||||
x_139 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__9;
|
||||
x_140 = lean_string_append(x_139, x_17);
|
||||
lean_dec(x_17);
|
||||
x_146 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__10;
|
||||
x_147 = lean_string_append(x_145, x_146);
|
||||
x_148 = lean_string_append(x_147, x_130);
|
||||
lean_dec(x_130);
|
||||
x_149 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__8;
|
||||
x_150 = lean_string_append(x_148, x_149);
|
||||
x_151 = lean_string_append(x_150, x_39);
|
||||
x_141 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__10;
|
||||
x_142 = lean_string_append(x_140, x_141);
|
||||
x_143 = lean_string_append(x_142, x_125);
|
||||
lean_dec(x_125);
|
||||
x_144 = l_Lean_Server_FileWorker_lakeSetupSearchPath___closed__8;
|
||||
x_145 = lean_string_append(x_143, x_144);
|
||||
x_146 = lean_string_append(x_145, x_39);
|
||||
lean_dec(x_39);
|
||||
x_152 = lean_string_append(x_151, x_25);
|
||||
x_153 = l_IO_throwServerError___rarg(x_152, x_110);
|
||||
return x_153;
|
||||
x_147 = lean_string_append(x_146, x_25);
|
||||
x_148 = l_IO_throwServerError___rarg(x_147, x_105);
|
||||
return x_148;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_154; lean_object* x_155;
|
||||
lean_dec(x_130);
|
||||
lean_object* x_149; lean_object* x_150;
|
||||
lean_dec(x_125);
|
||||
lean_dec(x_39);
|
||||
lean_dec(x_17);
|
||||
x_154 = lean_ctor_get(x_143, 0);
|
||||
lean_inc(x_154);
|
||||
lean_dec(x_143);
|
||||
x_155 = l_Lean_getBuiltinSearchPath(x_110);
|
||||
if (lean_obj_tag(x_155) == 0)
|
||||
x_149 = lean_ctor_get(x_138, 0);
|
||||
lean_inc(x_149);
|
||||
lean_dec(x_138);
|
||||
x_150 = lean_get_prefix(x_105);
|
||||
if (lean_obj_tag(x_150) == 0)
|
||||
{
|
||||
lean_object* x_156; lean_object* x_157; lean_object* x_158;
|
||||
x_156 = lean_ctor_get(x_155, 0);
|
||||
lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154;
|
||||
x_151 = lean_ctor_get(x_150, 0);
|
||||
lean_inc(x_151);
|
||||
x_152 = lean_ctor_get(x_150, 1);
|
||||
lean_inc(x_152);
|
||||
lean_dec(x_150);
|
||||
x_153 = lean_ctor_get(x_149, 0);
|
||||
lean_inc(x_153);
|
||||
x_154 = l_Lean_initSearchPath(x_151, x_153, x_152);
|
||||
if (lean_obj_tag(x_154) == 0)
|
||||
{
|
||||
lean_object* x_155; lean_object* x_156; lean_object* x_157;
|
||||
x_155 = lean_ctor_get(x_154, 1);
|
||||
lean_inc(x_155);
|
||||
lean_dec(x_154);
|
||||
x_156 = lean_ctor_get(x_149, 1);
|
||||
lean_inc(x_156);
|
||||
x_157 = lean_ctor_get(x_155, 1);
|
||||
lean_inc(x_157);
|
||||
lean_dec(x_155);
|
||||
x_158 = l_Lean_addSearchPathFromEnv(x_156, x_157);
|
||||
if (lean_obj_tag(x_158) == 0)
|
||||
lean_dec(x_149);
|
||||
x_157 = l_List_mapM___at_Lean_Server_FileWorker_lakeSetupSearchPath___spec__3(x_156, x_155);
|
||||
return x_157;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_object* x_167;
|
||||
x_159 = lean_ctor_get(x_158, 0);
|
||||
lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161;
|
||||
lean_dec(x_149);
|
||||
x_158 = lean_ctor_get(x_154, 0);
|
||||
lean_inc(x_158);
|
||||
x_159 = lean_ctor_get(x_154, 1);
|
||||
lean_inc(x_159);
|
||||
x_160 = lean_ctor_get(x_158, 1);
|
||||
lean_inc(x_160);
|
||||
lean_dec(x_158);
|
||||
x_161 = lean_ctor_get(x_154, 0);
|
||||
lean_inc(x_161);
|
||||
x_162 = l_List_appendTR___rarg(x_161, x_159);
|
||||
x_163 = l_Lean_searchPathRef;
|
||||
x_164 = lean_st_ref_set(x_163, x_162, x_160);
|
||||
x_165 = lean_ctor_get(x_164, 1);
|
||||
lean_inc(x_165);
|
||||
lean_dec(x_164);
|
||||
x_166 = lean_ctor_get(x_154, 1);
|
||||
lean_inc(x_166);
|
||||
lean_dec(x_154);
|
||||
x_167 = l_List_mapM___at_Lean_Server_FileWorker_lakeSetupSearchPath___spec__3(x_166, x_165);
|
||||
return x_167;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_168; lean_object* x_169; lean_object* x_170; lean_object* x_171;
|
||||
lean_dec(x_154);
|
||||
x_168 = lean_ctor_get(x_158, 0);
|
||||
lean_inc(x_168);
|
||||
x_169 = lean_ctor_get(x_158, 1);
|
||||
lean_inc(x_169);
|
||||
if (lean_is_exclusive(x_158)) {
|
||||
lean_ctor_release(x_158, 0);
|
||||
lean_ctor_release(x_158, 1);
|
||||
x_170 = x_158;
|
||||
if (lean_is_exclusive(x_154)) {
|
||||
lean_ctor_release(x_154, 0);
|
||||
lean_ctor_release(x_154, 1);
|
||||
x_160 = x_154;
|
||||
} else {
|
||||
lean_dec_ref(x_158);
|
||||
x_170 = lean_box(0);
|
||||
lean_dec_ref(x_154);
|
||||
x_160 = lean_box(0);
|
||||
}
|
||||
if (lean_is_scalar(x_170)) {
|
||||
x_171 = lean_alloc_ctor(1, 2, 0);
|
||||
if (lean_is_scalar(x_160)) {
|
||||
x_161 = lean_alloc_ctor(1, 2, 0);
|
||||
} else {
|
||||
x_171 = x_170;
|
||||
x_161 = x_160;
|
||||
}
|
||||
lean_ctor_set(x_171, 0, x_168);
|
||||
lean_ctor_set(x_171, 1, x_169);
|
||||
return x_171;
|
||||
lean_ctor_set(x_161, 0, x_158);
|
||||
lean_ctor_set(x_161, 1, x_159);
|
||||
return x_161;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175;
|
||||
lean_dec(x_154);
|
||||
x_172 = lean_ctor_get(x_155, 0);
|
||||
lean_inc(x_172);
|
||||
x_173 = lean_ctor_get(x_155, 1);
|
||||
lean_inc(x_173);
|
||||
if (lean_is_exclusive(x_155)) {
|
||||
lean_ctor_release(x_155, 0);
|
||||
lean_ctor_release(x_155, 1);
|
||||
x_174 = x_155;
|
||||
lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165;
|
||||
lean_dec(x_149);
|
||||
x_162 = lean_ctor_get(x_150, 0);
|
||||
lean_inc(x_162);
|
||||
x_163 = lean_ctor_get(x_150, 1);
|
||||
lean_inc(x_163);
|
||||
if (lean_is_exclusive(x_150)) {
|
||||
lean_ctor_release(x_150, 0);
|
||||
lean_ctor_release(x_150, 1);
|
||||
x_164 = x_150;
|
||||
} else {
|
||||
lean_dec_ref(x_155);
|
||||
x_174 = lean_box(0);
|
||||
lean_dec_ref(x_150);
|
||||
x_164 = lean_box(0);
|
||||
}
|
||||
if (lean_is_scalar(x_174)) {
|
||||
x_175 = lean_alloc_ctor(1, 2, 0);
|
||||
if (lean_is_scalar(x_164)) {
|
||||
x_165 = lean_alloc_ctor(1, 2, 0);
|
||||
} else {
|
||||
x_175 = x_174;
|
||||
x_165 = x_164;
|
||||
}
|
||||
lean_ctor_set(x_175, 0, x_172);
|
||||
lean_ctor_set(x_175, 1, x_173);
|
||||
return x_175;
|
||||
lean_ctor_set(x_165, 0, x_162);
|
||||
lean_ctor_set(x_165, 1, x_163);
|
||||
return x_165;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2509,107 +2492,107 @@ return x_175;
|
|||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_176;
|
||||
uint8_t x_166;
|
||||
lean_dec(x_39);
|
||||
lean_dec(x_36);
|
||||
lean_dec(x_17);
|
||||
x_176 = !lean_is_exclusive(x_41);
|
||||
if (x_176 == 0)
|
||||
x_166 = !lean_is_exclusive(x_41);
|
||||
if (x_166 == 0)
|
||||
{
|
||||
return x_41;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_177; lean_object* x_178; lean_object* x_179;
|
||||
x_177 = lean_ctor_get(x_41, 0);
|
||||
x_178 = lean_ctor_get(x_41, 1);
|
||||
lean_inc(x_178);
|
||||
lean_inc(x_177);
|
||||
lean_object* x_167; lean_object* x_168; lean_object* x_169;
|
||||
x_167 = lean_ctor_get(x_41, 0);
|
||||
x_168 = lean_ctor_get(x_41, 1);
|
||||
lean_inc(x_168);
|
||||
lean_inc(x_167);
|
||||
lean_dec(x_41);
|
||||
x_179 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_179, 0, x_177);
|
||||
lean_ctor_set(x_179, 1, x_178);
|
||||
return x_179;
|
||||
x_169 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_169, 0, x_167);
|
||||
lean_ctor_set(x_169, 1, x_168);
|
||||
return x_169;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_180;
|
||||
uint8_t x_170;
|
||||
lean_dec(x_36);
|
||||
lean_dec(x_23);
|
||||
lean_dec(x_17);
|
||||
x_180 = !lean_is_exclusive(x_38);
|
||||
if (x_180 == 0)
|
||||
x_170 = !lean_is_exclusive(x_38);
|
||||
if (x_170 == 0)
|
||||
{
|
||||
return x_38;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_181; lean_object* x_182; lean_object* x_183;
|
||||
x_181 = lean_ctor_get(x_38, 0);
|
||||
x_182 = lean_ctor_get(x_38, 1);
|
||||
lean_inc(x_182);
|
||||
lean_inc(x_181);
|
||||
lean_object* x_171; lean_object* x_172; lean_object* x_173;
|
||||
x_171 = lean_ctor_get(x_38, 0);
|
||||
x_172 = lean_ctor_get(x_38, 1);
|
||||
lean_inc(x_172);
|
||||
lean_inc(x_171);
|
||||
lean_dec(x_38);
|
||||
x_183 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_183, 0, x_181);
|
||||
lean_ctor_set(x_183, 1, x_182);
|
||||
return x_183;
|
||||
x_173 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_173, 0, x_171);
|
||||
lean_ctor_set(x_173, 1, x_172);
|
||||
return x_173;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_184;
|
||||
uint8_t x_174;
|
||||
lean_dec(x_30);
|
||||
lean_dec(x_23);
|
||||
lean_dec(x_17);
|
||||
x_184 = !lean_is_exclusive(x_33);
|
||||
if (x_184 == 0)
|
||||
x_174 = !lean_is_exclusive(x_33);
|
||||
if (x_174 == 0)
|
||||
{
|
||||
return x_33;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_185; lean_object* x_186; lean_object* x_187;
|
||||
x_185 = lean_ctor_get(x_33, 0);
|
||||
x_186 = lean_ctor_get(x_33, 1);
|
||||
lean_inc(x_186);
|
||||
lean_inc(x_185);
|
||||
lean_object* x_175; lean_object* x_176; lean_object* x_177;
|
||||
x_175 = lean_ctor_get(x_33, 0);
|
||||
x_176 = lean_ctor_get(x_33, 1);
|
||||
lean_inc(x_176);
|
||||
lean_inc(x_175);
|
||||
lean_dec(x_33);
|
||||
x_187 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_187, 0, x_185);
|
||||
lean_ctor_set(x_187, 1, x_186);
|
||||
return x_187;
|
||||
x_177 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_177, 0, x_175);
|
||||
lean_ctor_set(x_177, 1, x_176);
|
||||
return x_177;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_188;
|
||||
uint8_t x_178;
|
||||
lean_dec(x_17);
|
||||
lean_dec(x_13);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_188 = !lean_is_exclusive(x_22);
|
||||
if (x_188 == 0)
|
||||
x_178 = !lean_is_exclusive(x_22);
|
||||
if (x_178 == 0)
|
||||
{
|
||||
return x_22;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_189; lean_object* x_190; lean_object* x_191;
|
||||
x_189 = lean_ctor_get(x_22, 0);
|
||||
x_190 = lean_ctor_get(x_22, 1);
|
||||
lean_inc(x_190);
|
||||
lean_inc(x_189);
|
||||
lean_object* x_179; lean_object* x_180; lean_object* x_181;
|
||||
x_179 = lean_ctor_get(x_22, 0);
|
||||
x_180 = lean_ctor_get(x_22, 1);
|
||||
lean_inc(x_180);
|
||||
lean_inc(x_179);
|
||||
lean_dec(x_22);
|
||||
x_191 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_191, 0, x_189);
|
||||
lean_ctor_set(x_191, 1, x_190);
|
||||
return x_191;
|
||||
x_181 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_181, 0, x_179);
|
||||
lean_ctor_set(x_181, 1, x_180);
|
||||
return x_181;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -5262,7 +5245,6 @@ lean_dec(x_28);
|
|||
x_31 = lean_ctor_get(x_26, 1);
|
||||
lean_inc(x_31);
|
||||
x_32 = l_Lean_Syntax_structEq(x_29, x_31);
|
||||
lean_dec(x_31);
|
||||
if (x_32 == 0)
|
||||
{
|
||||
lean_object* x_33; lean_object* x_34; lean_object* x_35;
|
||||
|
|
@ -5475,7 +5457,6 @@ lean_dec(x_88);
|
|||
x_91 = lean_ctor_get(x_86, 1);
|
||||
lean_inc(x_91);
|
||||
x_92 = l_Lean_Syntax_structEq(x_89, x_91);
|
||||
lean_dec(x_91);
|
||||
if (x_92 == 0)
|
||||
{
|
||||
lean_object* x_93; lean_object* x_94; lean_object* x_95;
|
||||
|
|
@ -5691,7 +5672,6 @@ x_18 = lean_ctor_get(x_12, 1);
|
|||
lean_inc(x_18);
|
||||
lean_dec(x_12);
|
||||
x_19 = l_Lean_Syntax_structEq(x_17, x_18);
|
||||
lean_dec(x_18);
|
||||
if (x_19 == 0)
|
||||
{
|
||||
lean_object* x_20; lean_object* x_21; uint8_t x_22;
|
||||
|
|
@ -12836,102 +12816,97 @@ return x_62;
|
|||
LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleRequest___lambda__2(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; lean_object* x_13; lean_object* x_14; lean_object* x_15;
|
||||
x_10 = lean_ctor_get(x_1, 2);
|
||||
x_11 = lean_ctor_get(x_2, 3);
|
||||
lean_inc(x_11);
|
||||
x_12 = lean_ctor_get(x_1, 0);
|
||||
x_13 = lean_ctor_get(x_2, 2);
|
||||
lean_inc(x_13);
|
||||
lean_inc(x_12);
|
||||
lean_inc(x_10);
|
||||
x_14 = lean_alloc_ctor(0, 4, 0);
|
||||
lean_ctor_set(x_14, 0, x_10);
|
||||
lean_ctor_set(x_14, 1, x_11);
|
||||
lean_ctor_set(x_14, 2, x_12);
|
||||
lean_ctor_set(x_14, 3, x_13);
|
||||
x_15 = l_Lean_Server_handleLspRequest(x_3, x_4, x_14, x_9);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_16;
|
||||
x_16 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_16);
|
||||
if (lean_obj_tag(x_16) == 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; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
lean_dec(x_15);
|
||||
x_18 = lean_ctor_get(x_16, 0);
|
||||
lean_inc(x_18);
|
||||
lean_dec(x_16);
|
||||
x_19 = lean_ctor_get(x_2, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_2);
|
||||
lean_inc(x_5);
|
||||
x_20 = l_Lean_Server_RequestError_toLspResponseError(x_5, x_18);
|
||||
lean_dec(x_18);
|
||||
x_21 = lean_alloc_closure((void*)(l_IO_FS_Stream_writeLspResponseError___boxed), 3, 2);
|
||||
lean_closure_set(x_21, 0, x_19);
|
||||
lean_closure_set(x_21, 1, x_20);
|
||||
x_22 = lean_alloc_closure((void*)(l_EIO_toBaseIO___rarg), 2, 1);
|
||||
lean_closure_set(x_22, 0, x_21);
|
||||
x_23 = l_Task_Priority_default;
|
||||
x_24 = lean_io_as_task(x_22, x_23, x_17);
|
||||
x_25 = lean_ctor_get(x_24, 0);
|
||||
lean_inc(x_25);
|
||||
x_26 = lean_ctor_get(x_24, 1);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_24);
|
||||
x_27 = l_Lean_Server_FileWorker_queueRequest(x_5, x_25, x_7, x_8, x_26);
|
||||
return x_27;
|
||||
}
|
||||
else
|
||||
{
|
||||
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;
|
||||
x_28 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_15);
|
||||
x_29 = lean_ctor_get(x_16, 0);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_16);
|
||||
lean_inc(x_5);
|
||||
x_30 = lean_alloc_closure((void*)(l_Lean_Server_FileWorker_handleRequest___lambda__1), 4, 2);
|
||||
lean_closure_set(x_30, 0, x_2);
|
||||
lean_closure_set(x_30, 1, x_5);
|
||||
x_31 = l_Task_Priority_default;
|
||||
x_32 = lean_io_map_task(x_30, x_29, x_31, x_28);
|
||||
x_33 = lean_ctor_get(x_32, 0);
|
||||
lean_object* x_10; lean_object* x_11; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35;
|
||||
x_30 = lean_ctor_get(x_3, 2);
|
||||
x_31 = lean_ctor_get(x_1, 3);
|
||||
lean_inc(x_31);
|
||||
x_32 = lean_ctor_get(x_3, 0);
|
||||
x_33 = lean_ctor_get(x_1, 2);
|
||||
lean_inc(x_33);
|
||||
x_34 = lean_ctor_get(x_32, 1);
|
||||
lean_inc(x_34);
|
||||
lean_dec(x_32);
|
||||
x_35 = l_Lean_Server_FileWorker_queueRequest(x_5, x_33, x_7, x_8, x_34);
|
||||
return x_35;
|
||||
}
|
||||
}
|
||||
else
|
||||
lean_inc(x_32);
|
||||
lean_inc(x_30);
|
||||
x_34 = lean_alloc_ctor(0, 4, 0);
|
||||
lean_ctor_set(x_34, 0, x_30);
|
||||
lean_ctor_set(x_34, 1, x_31);
|
||||
lean_ctor_set(x_34, 2, x_32);
|
||||
lean_ctor_set(x_34, 3, x_33);
|
||||
x_35 = l_Lean_Server_handleLspRequest(x_4, x_5, x_34, x_9);
|
||||
if (lean_obj_tag(x_35) == 0)
|
||||
{
|
||||
uint8_t x_36;
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_2);
|
||||
x_36 = !lean_is_exclusive(x_15);
|
||||
if (x_36 == 0)
|
||||
{
|
||||
return x_15;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_37; lean_object* x_38; lean_object* x_39;
|
||||
x_37 = lean_ctor_get(x_15, 0);
|
||||
x_38 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_38);
|
||||
lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_36 = lean_ctor_get(x_35, 0);
|
||||
lean_inc(x_36);
|
||||
x_37 = lean_ctor_get(x_35, 1);
|
||||
lean_inc(x_37);
|
||||
lean_dec(x_15);
|
||||
x_39 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_39, 0, x_37);
|
||||
lean_ctor_set(x_39, 1, x_38);
|
||||
return x_39;
|
||||
lean_dec(x_35);
|
||||
x_38 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_38, 0, x_36);
|
||||
x_10 = x_38;
|
||||
x_11 = x_37;
|
||||
goto block_29;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_39; lean_object* x_40; lean_object* x_41;
|
||||
x_39 = lean_ctor_get(x_35, 0);
|
||||
lean_inc(x_39);
|
||||
x_40 = lean_ctor_get(x_35, 1);
|
||||
lean_inc(x_40);
|
||||
lean_dec(x_35);
|
||||
x_41 = lean_alloc_ctor(0, 1, 0);
|
||||
lean_ctor_set(x_41, 0, x_39);
|
||||
x_10 = x_41;
|
||||
x_11 = x_40;
|
||||
goto block_29;
|
||||
}
|
||||
block_29:
|
||||
{
|
||||
if (lean_obj_tag(x_10) == 0)
|
||||
{
|
||||
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;
|
||||
x_12 = lean_ctor_get(x_10, 0);
|
||||
lean_inc(x_12);
|
||||
lean_dec(x_10);
|
||||
x_13 = lean_ctor_get(x_1, 1);
|
||||
lean_inc(x_13);
|
||||
lean_dec(x_1);
|
||||
lean_inc(x_2);
|
||||
x_14 = l_Lean_Server_RequestError_toLspResponseError(x_2, x_12);
|
||||
lean_dec(x_12);
|
||||
x_15 = lean_alloc_closure((void*)(l_IO_FS_Stream_writeLspResponseError___boxed), 3, 2);
|
||||
lean_closure_set(x_15, 0, x_13);
|
||||
lean_closure_set(x_15, 1, x_14);
|
||||
x_16 = lean_alloc_closure((void*)(l_EIO_toBaseIO___rarg), 2, 1);
|
||||
lean_closure_set(x_16, 0, x_15);
|
||||
x_17 = l_Task_Priority_default;
|
||||
x_18 = lean_io_as_task(x_16, x_17, x_11);
|
||||
x_19 = lean_ctor_get(x_18, 0);
|
||||
lean_inc(x_19);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
x_21 = l_Lean_Server_FileWorker_queueRequest(x_2, x_19, x_7, x_8, x_20);
|
||||
return x_21;
|
||||
}
|
||||
else
|
||||
{
|
||||
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;
|
||||
x_22 = lean_ctor_get(x_10, 0);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_10);
|
||||
lean_inc(x_2);
|
||||
x_23 = lean_alloc_closure((void*)(l_Lean_Server_FileWorker_handleRequest___lambda__1), 4, 2);
|
||||
lean_closure_set(x_23, 0, x_1);
|
||||
lean_closure_set(x_23, 1, x_2);
|
||||
x_24 = l_Task_Priority_default;
|
||||
x_25 = lean_io_map_task(x_23, x_22, x_24, x_11);
|
||||
x_26 = lean_ctor_get(x_25, 0);
|
||||
lean_inc(x_26);
|
||||
x_27 = lean_ctor_get(x_25, 1);
|
||||
lean_inc(x_27);
|
||||
lean_dec(x_25);
|
||||
x_28 = l_Lean_Server_FileWorker_queueRequest(x_2, x_26, x_7, x_8, x_27);
|
||||
return x_28;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -12961,10 +12936,10 @@ if (x_11 == 0)
|
|||
lean_object* x_12; lean_object* x_13;
|
||||
x_12 = lean_box(0);
|
||||
lean_inc(x_4);
|
||||
x_13 = l_Lean_Server_FileWorker_handleRequest___lambda__2(x_8, x_4, x_2, x_3, x_1, x_12, x_4, x_5, x_9);
|
||||
x_13 = l_Lean_Server_FileWorker_handleRequest___lambda__2(x_4, x_1, x_8, x_2, x_3, x_12, x_4, x_5, x_9);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_4);
|
||||
return x_13;
|
||||
}
|
||||
else
|
||||
|
|
@ -13266,7 +13241,7 @@ x_10 = l_Lean_Server_FileWorker_handleRequest___lambda__2(x_1, x_2, x_3, x_4, x_
|
|||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_1);
|
||||
lean_dec(x_3);
|
||||
return x_10;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
13842
stage0/stdlib/Lean/Server/FileWorker/RequestHandling.c
generated
13842
stage0/stdlib/Lean/Server/FileWorker/RequestHandling.c
generated
File diff suppressed because it is too large
Load diff
3991
stage0/stdlib/Lean/Server/FileWorker/WidgetRequests.c
generated
3991
stage0/stdlib/Lean/Server/FileWorker/WidgetRequests.c
generated
File diff suppressed because it is too large
Load diff
571
stage0/stdlib/Lean/Server/InfoUtils.c
generated
571
stage0/stdlib/Lean/Server/InfoUtils.c
generated
|
|
@ -1,6 +1,6 @@
|
|||
// Lean compiler output
|
||||
// Module: Lean.Server.InfoUtils
|
||||
// Imports: Init Lean.DocString Lean.Elab.InfoTree Lean.Util.Sorry
|
||||
// Imports: Init Lean.DocString Lean.Elab.InfoTree Lean.PrettyPrinter.Delaborator.Options Lean.Util.Sorry
|
||||
#include <lean/lean.h>
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic ignored "-Wunused-parameter"
|
||||
|
|
@ -227,6 +227,7 @@ LEAN_EXPORT lean_object* l_Std_HashSetImp_insert___at_Lean_Elab_InfoTree_termGoa
|
|||
LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_InfoTree_foldInfo_go___spec__26___rarg(lean_object*, lean_object*, lean_object*, size_t, size_t, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_InfoTree_foldInfo_go___spec__26___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_InfoTree_foldInfo_go___spec__19___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
extern lean_object* l_Lean_pp_fullNames;
|
||||
LEAN_EXPORT lean_object* l___private_Std_Data_PersistentArray_0__Std_PersistentArray_foldlMAux___at_Lean_Elab_InfoTree_foldInfo_go___spec__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Server_InfoUtils_0__String_reprRange____x40_Lean_Server_InfoUtils___hyg_35____closed__9;
|
||||
LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_InfoTree_foldInfo_go___spec__21(lean_object*);
|
||||
|
|
@ -318,6 +319,7 @@ static lean_object* l_List_mapTRAux___at_Lean_Elab_InfoTree_smallestInfo_x3f___s
|
|||
LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_InfoTree_foldInfo_go___spec__21___rarg(lean_object*, lean_object*, lean_object*, size_t, size_t, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Std_PersistentArray_foldlM___at_Lean_Elab_InfoTree_foldInfo_go___spec__1(lean_object*);
|
||||
lean_object* lean_nat_to_int(lean_object*);
|
||||
lean_object* l_Lean_Option_set___at_Lean_Meta_withPPInaccessibleNamesImp___spec__2(lean_object*, lean_object*, uint8_t);
|
||||
LEAN_EXPORT lean_object* l___private_Std_Data_PersistentArray_0__Std_PersistentArray_foldlMAux___at_Lean_Elab_InfoTree_foldInfo_go___spec__16(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Std_PersistentArray_foldlM___at_Lean_Elab_InfoTree_foldInfo_go___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at_Lean_Elab_InfoTree_goalsAt_x3f_hasNestedTactic___spec__8___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -4556,142 +4558,139 @@ lean_inc(x_8);
|
|||
x_9 = lean_infer_type(x_8, x_2, x_3, x_4, x_5, x_6);
|
||||
if (lean_obj_tag(x_9) == 0)
|
||||
{
|
||||
lean_object* x_10; lean_object* x_11; lean_object* x_12;
|
||||
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; lean_object* x_22; lean_object* x_23; lean_object* x_24;
|
||||
x_10 = lean_ctor_get(x_9, 0);
|
||||
lean_inc(x_10);
|
||||
x_11 = lean_ctor_get(x_9, 1);
|
||||
lean_inc(x_11);
|
||||
lean_dec(x_9);
|
||||
x_12 = l_Lean_Meta_ppExpr(x_8, x_2, x_3, x_4, x_5, x_11);
|
||||
if (lean_obj_tag(x_12) == 0)
|
||||
{
|
||||
lean_object* x_13; lean_object* x_14; lean_object* x_15;
|
||||
x_13 = lean_ctor_get(x_12, 0);
|
||||
x_12 = lean_ctor_get(x_4, 0);
|
||||
lean_inc(x_12);
|
||||
x_13 = lean_ctor_get(x_4, 1);
|
||||
lean_inc(x_13);
|
||||
x_14 = lean_ctor_get(x_12, 1);
|
||||
x_14 = lean_ctor_get(x_4, 2);
|
||||
lean_inc(x_14);
|
||||
lean_dec(x_12);
|
||||
x_15 = l_Lean_Meta_ppExpr(x_10, x_2, x_3, x_4, x_5, x_14);
|
||||
x_15 = lean_ctor_get(x_4, 3);
|
||||
lean_inc(x_15);
|
||||
x_16 = lean_ctor_get(x_4, 4);
|
||||
lean_inc(x_16);
|
||||
x_17 = lean_ctor_get(x_4, 5);
|
||||
lean_inc(x_17);
|
||||
x_18 = lean_ctor_get(x_4, 6);
|
||||
lean_inc(x_18);
|
||||
x_19 = lean_ctor_get(x_4, 7);
|
||||
lean_inc(x_19);
|
||||
x_20 = l_Lean_pp_fullNames;
|
||||
x_21 = 1;
|
||||
x_22 = l_Lean_Option_set___at_Lean_Meta_withPPInaccessibleNamesImp___spec__2(x_12, x_20, x_21);
|
||||
x_23 = lean_alloc_ctor(0, 8, 0);
|
||||
lean_ctor_set(x_23, 0, x_22);
|
||||
lean_ctor_set(x_23, 1, x_13);
|
||||
lean_ctor_set(x_23, 2, x_14);
|
||||
lean_ctor_set(x_23, 3, x_15);
|
||||
lean_ctor_set(x_23, 4, x_16);
|
||||
lean_ctor_set(x_23, 5, x_17);
|
||||
lean_ctor_set(x_23, 6, x_18);
|
||||
lean_ctor_set(x_23, 7, x_19);
|
||||
x_24 = l_Lean_Meta_ppExpr(x_8, x_2, x_3, x_23, x_5, x_11);
|
||||
lean_dec(x_23);
|
||||
if (lean_obj_tag(x_24) == 0)
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_24, 0);
|
||||
lean_inc(x_25);
|
||||
x_26 = lean_ctor_get(x_24, 1);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_24);
|
||||
x_27 = l_Lean_Meta_ppExpr(x_10, x_2, x_3, x_4, x_5, x_26);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
if (lean_obj_tag(x_27) == 0)
|
||||
{
|
||||
uint8_t x_16;
|
||||
x_16 = !lean_is_exclusive(x_15);
|
||||
if (x_16 == 0)
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_27);
|
||||
if (x_28 == 0)
|
||||
{
|
||||
lean_object* x_17; uint8_t x_18;
|
||||
x_17 = lean_ctor_get(x_15, 0);
|
||||
x_18 = l_Lean_Elab_Info_fmtHover_x3f_isAtomicFormat(x_13);
|
||||
if (x_18 == 0)
|
||||
lean_object* x_29; uint8_t x_30;
|
||||
x_29 = lean_ctor_get(x_27, 0);
|
||||
x_30 = l_Lean_Elab_Info_fmtHover_x3f_isAtomicFormat(x_25);
|
||||
if (x_30 == 0)
|
||||
{
|
||||
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_dec(x_13);
|
||||
x_19 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__6;
|
||||
x_20 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_20, 0, x_19);
|
||||
lean_ctor_set(x_20, 1, x_17);
|
||||
x_21 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_21, 0, x_20);
|
||||
lean_ctor_set(x_21, 1, x_19);
|
||||
x_22 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__2;
|
||||
x_23 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_23, 0, x_22);
|
||||
lean_ctor_set(x_23, 1, x_21);
|
||||
x_24 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__4;
|
||||
x_25 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_25, 0, x_23);
|
||||
lean_ctor_set(x_25, 1, x_24);
|
||||
x_26 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
lean_ctor_set(x_15, 0, x_26);
|
||||
return x_15;
|
||||
}
|
||||
else
|
||||
{
|
||||
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;
|
||||
x_27 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__6;
|
||||
x_28 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_28, 0, x_27);
|
||||
lean_ctor_set(x_28, 1, x_13);
|
||||
x_29 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__8;
|
||||
x_30 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_30, 0, x_28);
|
||||
lean_ctor_set(x_30, 1, x_29);
|
||||
x_31 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_30);
|
||||
lean_ctor_set(x_31, 1, x_17);
|
||||
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_dec(x_25);
|
||||
x_31 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__6;
|
||||
x_32 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_32, 0, x_31);
|
||||
lean_ctor_set(x_32, 1, x_27);
|
||||
x_33 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__2;
|
||||
x_34 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_34, 0, x_33);
|
||||
lean_ctor_set(x_34, 1, x_32);
|
||||
x_35 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__4;
|
||||
x_36 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_36, 0, x_34);
|
||||
lean_ctor_set(x_36, 1, x_35);
|
||||
x_37 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_37, 0, x_36);
|
||||
lean_ctor_set(x_15, 0, x_37);
|
||||
return x_15;
|
||||
}
|
||||
lean_ctor_set(x_32, 1, x_29);
|
||||
x_33 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_33, 0, x_32);
|
||||
lean_ctor_set(x_33, 1, x_31);
|
||||
x_34 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__2;
|
||||
x_35 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_35, 0, x_34);
|
||||
lean_ctor_set(x_35, 1, x_33);
|
||||
x_36 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__4;
|
||||
x_37 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_37, 0, x_35);
|
||||
lean_ctor_set(x_37, 1, x_36);
|
||||
x_38 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_38, 0, x_37);
|
||||
lean_ctor_set(x_27, 0, x_38);
|
||||
return x_27;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_38; lean_object* x_39; uint8_t x_40;
|
||||
x_38 = lean_ctor_get(x_15, 0);
|
||||
x_39 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_39);
|
||||
lean_inc(x_38);
|
||||
lean_dec(x_15);
|
||||
x_40 = l_Lean_Elab_Info_fmtHover_x3f_isAtomicFormat(x_13);
|
||||
if (x_40 == 0)
|
||||
{
|
||||
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; lean_object* x_49;
|
||||
lean_dec(x_13);
|
||||
x_41 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__6;
|
||||
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; lean_object* x_49;
|
||||
x_39 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__6;
|
||||
x_40 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_40, 0, x_39);
|
||||
lean_ctor_set(x_40, 1, x_25);
|
||||
x_41 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__8;
|
||||
x_42 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_42, 0, x_41);
|
||||
lean_ctor_set(x_42, 1, x_38);
|
||||
lean_ctor_set(x_42, 0, x_40);
|
||||
lean_ctor_set(x_42, 1, x_41);
|
||||
x_43 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_43, 0, x_42);
|
||||
lean_ctor_set(x_43, 1, x_41);
|
||||
x_44 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__2;
|
||||
x_45 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_45, 0, x_44);
|
||||
lean_ctor_set(x_45, 1, x_43);
|
||||
x_46 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__4;
|
||||
x_47 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_47, 0, x_45);
|
||||
lean_ctor_set(x_47, 1, x_46);
|
||||
x_48 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_48, 0, x_47);
|
||||
x_49 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_43, 1, x_29);
|
||||
x_44 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_44, 0, x_43);
|
||||
lean_ctor_set(x_44, 1, x_39);
|
||||
x_45 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__2;
|
||||
x_46 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_46, 0, x_45);
|
||||
lean_ctor_set(x_46, 1, x_44);
|
||||
x_47 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__4;
|
||||
x_48 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_48, 0, x_46);
|
||||
lean_ctor_set(x_48, 1, x_47);
|
||||
x_49 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_49, 0, x_48);
|
||||
lean_ctor_set(x_49, 1, x_39);
|
||||
return x_49;
|
||||
lean_ctor_set(x_27, 0, x_49);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61;
|
||||
x_50 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__6;
|
||||
x_51 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_51, 0, x_50);
|
||||
lean_ctor_set(x_51, 1, x_13);
|
||||
x_52 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__8;
|
||||
x_53 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_53, 0, x_51);
|
||||
lean_ctor_set(x_53, 1, x_52);
|
||||
lean_object* x_50; lean_object* x_51; uint8_t x_52;
|
||||
x_50 = lean_ctor_get(x_27, 0);
|
||||
x_51 = lean_ctor_get(x_27, 1);
|
||||
lean_inc(x_51);
|
||||
lean_inc(x_50);
|
||||
lean_dec(x_27);
|
||||
x_52 = l_Lean_Elab_Info_fmtHover_x3f_isAtomicFormat(x_25);
|
||||
if (x_52 == 0)
|
||||
{
|
||||
lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61;
|
||||
lean_dec(x_25);
|
||||
x_53 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__6;
|
||||
x_54 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_54, 0, x_53);
|
||||
lean_ctor_set(x_54, 1, x_38);
|
||||
lean_ctor_set(x_54, 1, x_50);
|
||||
x_55 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_55, 0, x_54);
|
||||
lean_ctor_set(x_55, 1, x_50);
|
||||
lean_ctor_set(x_55, 1, x_53);
|
||||
x_56 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__2;
|
||||
x_57 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_57, 0, x_56);
|
||||
|
|
@ -4704,255 +4703,287 @@ x_60 = lean_alloc_ctor(1, 1, 0);
|
|||
lean_ctor_set(x_60, 0, x_59);
|
||||
x_61 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_61, 0, x_60);
|
||||
lean_ctor_set(x_61, 1, x_39);
|
||||
lean_ctor_set(x_61, 1, x_51);
|
||||
return x_61;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_62;
|
||||
lean_dec(x_13);
|
||||
x_62 = !lean_is_exclusive(x_15);
|
||||
if (x_62 == 0)
|
||||
{
|
||||
return x_15;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_63; lean_object* x_64; lean_object* x_65;
|
||||
x_63 = lean_ctor_get(x_15, 0);
|
||||
x_64 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_64);
|
||||
lean_inc(x_63);
|
||||
lean_dec(x_15);
|
||||
x_65 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; 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_62 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__6;
|
||||
x_63 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_63, 0, x_62);
|
||||
lean_ctor_set(x_63, 1, x_25);
|
||||
x_64 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__8;
|
||||
x_65 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_65, 0, x_63);
|
||||
lean_ctor_set(x_65, 1, x_64);
|
||||
return x_65;
|
||||
x_66 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_66, 0, x_65);
|
||||
lean_ctor_set(x_66, 1, x_50);
|
||||
x_67 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_67, 0, x_66);
|
||||
lean_ctor_set(x_67, 1, x_62);
|
||||
x_68 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__2;
|
||||
x_69 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_69, 0, x_68);
|
||||
lean_ctor_set(x_69, 1, x_67);
|
||||
x_70 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__4;
|
||||
x_71 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_71, 0, x_69);
|
||||
lean_ctor_set(x_71, 1, x_70);
|
||||
x_72 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_72, 0, x_71);
|
||||
x_73 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_73, 0, x_72);
|
||||
lean_ctor_set(x_73, 1, x_51);
|
||||
return x_73;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_66;
|
||||
uint8_t x_74;
|
||||
lean_dec(x_25);
|
||||
x_74 = !lean_is_exclusive(x_27);
|
||||
if (x_74 == 0)
|
||||
{
|
||||
return x_27;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_75; lean_object* x_76; lean_object* x_77;
|
||||
x_75 = lean_ctor_get(x_27, 0);
|
||||
x_76 = lean_ctor_get(x_27, 1);
|
||||
lean_inc(x_76);
|
||||
lean_inc(x_75);
|
||||
lean_dec(x_27);
|
||||
x_77 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_77, 0, x_75);
|
||||
lean_ctor_set(x_77, 1, x_76);
|
||||
return x_77;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_78;
|
||||
lean_dec(x_10);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
x_66 = !lean_is_exclusive(x_12);
|
||||
if (x_66 == 0)
|
||||
x_78 = !lean_is_exclusive(x_24);
|
||||
if (x_78 == 0)
|
||||
{
|
||||
return x_12;
|
||||
return x_24;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_67; lean_object* x_68; lean_object* x_69;
|
||||
x_67 = lean_ctor_get(x_12, 0);
|
||||
x_68 = lean_ctor_get(x_12, 1);
|
||||
lean_inc(x_68);
|
||||
lean_inc(x_67);
|
||||
lean_dec(x_12);
|
||||
x_69 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_69, 0, x_67);
|
||||
lean_ctor_set(x_69, 1, x_68);
|
||||
return x_69;
|
||||
lean_object* x_79; lean_object* x_80; lean_object* x_81;
|
||||
x_79 = lean_ctor_get(x_24, 0);
|
||||
x_80 = lean_ctor_get(x_24, 1);
|
||||
lean_inc(x_80);
|
||||
lean_inc(x_79);
|
||||
lean_dec(x_24);
|
||||
x_81 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_81, 0, x_79);
|
||||
lean_ctor_set(x_81, 1, x_80);
|
||||
return x_81;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_70;
|
||||
uint8_t x_82;
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
x_70 = !lean_is_exclusive(x_9);
|
||||
if (x_70 == 0)
|
||||
x_82 = !lean_is_exclusive(x_9);
|
||||
if (x_82 == 0)
|
||||
{
|
||||
return x_9;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_71; lean_object* x_72; lean_object* x_73;
|
||||
x_71 = lean_ctor_get(x_9, 0);
|
||||
x_72 = lean_ctor_get(x_9, 1);
|
||||
lean_inc(x_72);
|
||||
lean_inc(x_71);
|
||||
lean_object* x_83; lean_object* x_84; lean_object* x_85;
|
||||
x_83 = lean_ctor_get(x_9, 0);
|
||||
x_84 = lean_ctor_get(x_9, 1);
|
||||
lean_inc(x_84);
|
||||
lean_inc(x_83);
|
||||
lean_dec(x_9);
|
||||
x_73 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_73, 0, x_71);
|
||||
lean_ctor_set(x_73, 1, x_72);
|
||||
return x_73;
|
||||
x_85 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_85, 0, x_83);
|
||||
lean_ctor_set(x_85, 1, x_84);
|
||||
return x_85;
|
||||
}
|
||||
}
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
lean_object* x_74; lean_object* x_75; lean_object* x_76;
|
||||
x_74 = lean_ctor_get(x_1, 0);
|
||||
lean_inc(x_74);
|
||||
lean_object* x_86; lean_object* x_87; lean_object* x_88;
|
||||
x_86 = lean_ctor_get(x_1, 0);
|
||||
lean_inc(x_86);
|
||||
lean_dec(x_1);
|
||||
x_75 = lean_ctor_get(x_74, 3);
|
||||
lean_inc(x_75);
|
||||
x_87 = lean_ctor_get(x_86, 3);
|
||||
lean_inc(x_87);
|
||||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
lean_inc(x_3);
|
||||
lean_inc(x_2);
|
||||
x_76 = lean_infer_type(x_75, x_2, x_3, x_4, x_5, x_6);
|
||||
if (lean_obj_tag(x_76) == 0)
|
||||
x_88 = lean_infer_type(x_87, x_2, x_3, x_4, x_5, x_6);
|
||||
if (lean_obj_tag(x_88) == 0)
|
||||
{
|
||||
lean_object* x_77; lean_object* x_78; lean_object* x_79;
|
||||
x_77 = lean_ctor_get(x_76, 0);
|
||||
lean_inc(x_77);
|
||||
x_78 = lean_ctor_get(x_76, 1);
|
||||
lean_inc(x_78);
|
||||
lean_dec(x_76);
|
||||
x_79 = l_Lean_Meta_ppExpr(x_77, x_2, x_3, x_4, x_5, x_78);
|
||||
lean_object* x_89; lean_object* x_90; lean_object* x_91;
|
||||
x_89 = lean_ctor_get(x_88, 0);
|
||||
lean_inc(x_89);
|
||||
x_90 = lean_ctor_get(x_88, 1);
|
||||
lean_inc(x_90);
|
||||
lean_dec(x_88);
|
||||
x_91 = l_Lean_Meta_ppExpr(x_89, x_2, x_3, x_4, x_5, x_90);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
if (lean_obj_tag(x_79) == 0)
|
||||
if (lean_obj_tag(x_91) == 0)
|
||||
{
|
||||
uint8_t x_80;
|
||||
x_80 = !lean_is_exclusive(x_79);
|
||||
if (x_80 == 0)
|
||||
uint8_t x_92;
|
||||
x_92 = !lean_is_exclusive(x_91);
|
||||
if (x_92 == 0)
|
||||
{
|
||||
lean_object* x_81; lean_object* x_82; uint8_t x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93;
|
||||
x_81 = lean_ctor_get(x_79, 0);
|
||||
x_82 = lean_ctor_get(x_74, 1);
|
||||
lean_inc(x_82);
|
||||
lean_dec(x_74);
|
||||
x_83 = 1;
|
||||
x_84 = l_Lean_Name_toString(x_82, x_83);
|
||||
x_85 = lean_alloc_ctor(2, 1, 0);
|
||||
lean_ctor_set(x_85, 0, x_84);
|
||||
x_86 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__2;
|
||||
x_87 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_87, 0, x_86);
|
||||
lean_ctor_set(x_87, 1, x_85);
|
||||
x_88 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__8;
|
||||
x_89 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_89, 0, x_87);
|
||||
lean_ctor_set(x_89, 1, x_88);
|
||||
x_90 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_90, 0, x_89);
|
||||
lean_ctor_set(x_90, 1, x_81);
|
||||
x_91 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__4;
|
||||
x_92 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_92, 0, x_90);
|
||||
lean_ctor_set(x_92, 1, x_91);
|
||||
x_93 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_93, 0, x_92);
|
||||
lean_ctor_set(x_79, 0, x_93);
|
||||
return x_79;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_94; lean_object* x_95; lean_object* x_96; uint8_t x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108;
|
||||
x_94 = lean_ctor_get(x_79, 0);
|
||||
x_95 = lean_ctor_get(x_79, 1);
|
||||
lean_inc(x_95);
|
||||
lean_object* x_93; lean_object* x_94; uint8_t x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105;
|
||||
x_93 = lean_ctor_get(x_91, 0);
|
||||
x_94 = lean_ctor_get(x_86, 1);
|
||||
lean_inc(x_94);
|
||||
lean_dec(x_79);
|
||||
x_96 = lean_ctor_get(x_74, 1);
|
||||
lean_inc(x_96);
|
||||
lean_dec(x_74);
|
||||
x_97 = 1;
|
||||
x_98 = l_Lean_Name_toString(x_96, x_97);
|
||||
x_99 = lean_alloc_ctor(2, 1, 0);
|
||||
lean_dec(x_86);
|
||||
x_95 = 1;
|
||||
x_96 = l_Lean_Name_toString(x_94, x_95);
|
||||
x_97 = lean_alloc_ctor(2, 1, 0);
|
||||
lean_ctor_set(x_97, 0, x_96);
|
||||
x_98 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__2;
|
||||
x_99 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_99, 0, x_98);
|
||||
x_100 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__2;
|
||||
lean_ctor_set(x_99, 1, x_97);
|
||||
x_100 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__8;
|
||||
x_101 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_101, 0, x_100);
|
||||
lean_ctor_set(x_101, 1, x_99);
|
||||
x_102 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__8;
|
||||
x_103 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_103, 0, x_101);
|
||||
lean_ctor_set(x_103, 1, x_102);
|
||||
lean_ctor_set(x_101, 0, x_99);
|
||||
lean_ctor_set(x_101, 1, x_100);
|
||||
x_102 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_102, 0, x_101);
|
||||
lean_ctor_set(x_102, 1, x_93);
|
||||
x_103 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__4;
|
||||
x_104 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_104, 0, x_103);
|
||||
lean_ctor_set(x_104, 1, x_94);
|
||||
x_105 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__4;
|
||||
x_106 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_106, 0, x_104);
|
||||
lean_ctor_set(x_106, 1, x_105);
|
||||
x_107 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_107, 0, x_106);
|
||||
x_108 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_108, 0, x_107);
|
||||
lean_ctor_set(x_108, 1, x_95);
|
||||
return x_108;
|
||||
lean_ctor_set(x_104, 0, x_102);
|
||||
lean_ctor_set(x_104, 1, x_103);
|
||||
x_105 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_105, 0, x_104);
|
||||
lean_ctor_set(x_91, 0, x_105);
|
||||
return x_91;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_106; lean_object* x_107; lean_object* x_108; uint8_t x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120;
|
||||
x_106 = lean_ctor_get(x_91, 0);
|
||||
x_107 = lean_ctor_get(x_91, 1);
|
||||
lean_inc(x_107);
|
||||
lean_inc(x_106);
|
||||
lean_dec(x_91);
|
||||
x_108 = lean_ctor_get(x_86, 1);
|
||||
lean_inc(x_108);
|
||||
lean_dec(x_86);
|
||||
x_109 = 1;
|
||||
x_110 = l_Lean_Name_toString(x_108, x_109);
|
||||
x_111 = lean_alloc_ctor(2, 1, 0);
|
||||
lean_ctor_set(x_111, 0, x_110);
|
||||
x_112 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__2;
|
||||
x_113 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_113, 0, x_112);
|
||||
lean_ctor_set(x_113, 1, x_111);
|
||||
x_114 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__8;
|
||||
x_115 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_115, 0, x_113);
|
||||
lean_ctor_set(x_115, 1, x_114);
|
||||
x_116 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_116, 0, x_115);
|
||||
lean_ctor_set(x_116, 1, x_106);
|
||||
x_117 = l_Lean_Elab_Info_fmtHover_x3f_fmtTerm_x3f___closed__4;
|
||||
x_118 = lean_alloc_ctor(4, 2, 0);
|
||||
lean_ctor_set(x_118, 0, x_116);
|
||||
lean_ctor_set(x_118, 1, x_117);
|
||||
x_119 = lean_alloc_ctor(1, 1, 0);
|
||||
lean_ctor_set(x_119, 0, x_118);
|
||||
x_120 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_120, 0, x_119);
|
||||
lean_ctor_set(x_120, 1, x_107);
|
||||
return x_120;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_109;
|
||||
lean_dec(x_74);
|
||||
x_109 = !lean_is_exclusive(x_79);
|
||||
if (x_109 == 0)
|
||||
uint8_t x_121;
|
||||
lean_dec(x_86);
|
||||
x_121 = !lean_is_exclusive(x_91);
|
||||
if (x_121 == 0)
|
||||
{
|
||||
return x_79;
|
||||
return x_91;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_110; lean_object* x_111; lean_object* x_112;
|
||||
x_110 = lean_ctor_get(x_79, 0);
|
||||
x_111 = lean_ctor_get(x_79, 1);
|
||||
lean_inc(x_111);
|
||||
lean_inc(x_110);
|
||||
lean_dec(x_79);
|
||||
x_112 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_112, 0, x_110);
|
||||
lean_ctor_set(x_112, 1, x_111);
|
||||
return x_112;
|
||||
lean_object* x_122; lean_object* x_123; lean_object* x_124;
|
||||
x_122 = lean_ctor_get(x_91, 0);
|
||||
x_123 = lean_ctor_get(x_91, 1);
|
||||
lean_inc(x_123);
|
||||
lean_inc(x_122);
|
||||
lean_dec(x_91);
|
||||
x_124 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_124, 0, x_122);
|
||||
lean_ctor_set(x_124, 1, x_123);
|
||||
return x_124;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_113;
|
||||
lean_dec(x_74);
|
||||
uint8_t x_125;
|
||||
lean_dec(x_86);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
x_113 = !lean_is_exclusive(x_76);
|
||||
if (x_113 == 0)
|
||||
x_125 = !lean_is_exclusive(x_88);
|
||||
if (x_125 == 0)
|
||||
{
|
||||
return x_76;
|
||||
return x_88;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_114; lean_object* x_115; lean_object* x_116;
|
||||
x_114 = lean_ctor_get(x_76, 0);
|
||||
x_115 = lean_ctor_get(x_76, 1);
|
||||
lean_inc(x_115);
|
||||
lean_inc(x_114);
|
||||
lean_dec(x_76);
|
||||
x_116 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_116, 0, x_114);
|
||||
lean_ctor_set(x_116, 1, x_115);
|
||||
return x_116;
|
||||
lean_object* x_126; lean_object* x_127; lean_object* x_128;
|
||||
x_126 = lean_ctor_get(x_88, 0);
|
||||
x_127 = lean_ctor_get(x_88, 1);
|
||||
lean_inc(x_127);
|
||||
lean_inc(x_126);
|
||||
lean_dec(x_88);
|
||||
x_128 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_128, 0, x_126);
|
||||
lean_ctor_set(x_128, 1, x_127);
|
||||
return x_128;
|
||||
}
|
||||
}
|
||||
}
|
||||
default:
|
||||
{
|
||||
lean_object* x_117; lean_object* x_118;
|
||||
lean_object* x_129; lean_object* x_130;
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_117 = lean_box(0);
|
||||
x_118 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_118, 0, x_117);
|
||||
lean_ctor_set(x_118, 1, x_6);
|
||||
return x_118;
|
||||
x_129 = lean_box(0);
|
||||
x_130 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_130, 0, x_129);
|
||||
lean_ctor_set(x_130, 1, x_6);
|
||||
return x_130;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -7432,6 +7463,7 @@ return x_5;
|
|||
lean_object* initialize_Init(lean_object*);
|
||||
lean_object* initialize_Lean_DocString(lean_object*);
|
||||
lean_object* initialize_Lean_Elab_InfoTree(lean_object*);
|
||||
lean_object* initialize_Lean_PrettyPrinter_Delaborator_Options(lean_object*);
|
||||
lean_object* initialize_Lean_Util_Sorry(lean_object*);
|
||||
static bool _G_initialized = false;
|
||||
LEAN_EXPORT lean_object* initialize_Lean_Server_InfoUtils(lean_object* w) {
|
||||
|
|
@ -7447,6 +7479,9 @@ lean_dec_ref(res);
|
|||
res = initialize_Lean_Elab_InfoTree(lean_io_mk_world());
|
||||
if (lean_io_result_is_error(res)) return res;
|
||||
lean_dec_ref(res);
|
||||
res = initialize_Lean_PrettyPrinter_Delaborator_Options(lean_io_mk_world());
|
||||
if (lean_io_result_is_error(res)) return res;
|
||||
lean_dec_ref(res);
|
||||
res = initialize_Lean_Util_Sorry(lean_io_mk_world());
|
||||
if (lean_io_result_is_error(res)) return res;
|
||||
lean_dec_ref(res);
|
||||
|
|
|
|||
1142
stage0/stdlib/Lean/Server/Requests.c
generated
1142
stage0/stdlib/Lean/Server/Requests.c
generated
File diff suppressed because it is too large
Load diff
1114
stage0/stdlib/Lean/Server/Rpc/RequestHandling.c
generated
1114
stage0/stdlib/Lean/Server/Rpc/RequestHandling.c
generated
File diff suppressed because it is too large
Load diff
1059
stage0/stdlib/Lean/Server/Snapshots.c
generated
1059
stage0/stdlib/Lean/Server/Snapshots.c
generated
File diff suppressed because it is too large
Load diff
2
stage0/stdlib/Lean/Server/Watchdog.c
generated
2
stage0/stdlib/Lean/Server/Watchdog.c
generated
|
|
@ -7319,6 +7319,7 @@ lean_inc(x_25);
|
|||
x_26 = lean_ctor_get(x_24, 1);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_24);
|
||||
lean_inc(x_18);
|
||||
x_27 = l_Lean_Syntax_structEq(x_25, x_18);
|
||||
if (x_27 == 0)
|
||||
{
|
||||
|
|
@ -7549,6 +7550,7 @@ lean_inc(x_76);
|
|||
x_77 = lean_ctor_get(x_75, 1);
|
||||
lean_inc(x_77);
|
||||
lean_dec(x_75);
|
||||
lean_inc(x_69);
|
||||
x_78 = l_Lean_Syntax_structEq(x_76, x_69);
|
||||
if (x_78 == 0)
|
||||
{
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue