U
    1eO                     @   s   d Z ddlZddlmZmZmZmZ ddlmZm	Z	m
Z
mZmZmZmZmZmZmZ dddgZG dd deZG d	d deZG d
d deZdS )z
    pygments.lexers.theorem
    ~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for theorem-proving languages.

    :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerdefaultwordsinclude)
TextCommentOperatorKeywordNameStringNumberPunctuationGeneric
WhitespaceCoqLexerIsabelleLexer	LeanLexerc                   @   s  e Zd ZdZdZdZdgZdgZdgZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdefdejjfdedfdefdejfdejfee
dddejfeedddefeedddejfeedddefeedddejfeedddejfdefddeddd  efd eeef efd!efd"e j!fd#e j"fd$e j#fd%e j$fd&e j%fd'e&j'fd(e&j'fd)efd*e&j(d+fd,efd-ejjfgd.efded/fd0ed1fd2efgd3e&j(fd4e&j(fd*e&j(d1fgdefd5e)fd6ejfd7ej*d1fd8ed1fe+d1gd9Z,d:d; Z-dS )<r   z@
    For the Coq theorem prover.

    .. versionadded:: 1.5
    ZCoqzhttp://coq.inria.fr/Zcoqz*.vz
text/x-coqr   )ZZSectionModuleZEndZRequireZImportZExportVariable	Variables	ParameterZ
ParametersZAxiomZAxiomsZ
HypothesisZ
HypothesesZNotationZLocalZTacticReservedZScopeZOpenCloseZBindZDelimitZ
DefinitionZExampleZLetZLtacZFixpointZ
CoFixpointZMorphismZRelationZImplicit	ArgumentsZTypesZUnsetZ
ContextualZStrictZPrenexZ	ImplicitsZ	InductiveZCoInductiveZRecord	StructureZVariantZ	CanonicalZCoercionZTheoremZLemmaZFactZRemarkZ	CorollaryZPropositionZPropertyZGoalProofZRestartZSaveQedZDefinedZAbortZAdmittedZHintZResolveZRewriteZViewZSearchZComputeZEvalZShowZPrintZPrintingZAllZGraphZProjectionsZinsideZoutsideZCheckZGlobalZInstanceClassZExistingZUniverseZPolymorphicZMonomorphicContextSchemeFromZUndoZFailZFunction)forallexistsZexists2funfixZcofixstructmatchendinreturnletifisthenelseforZofZnosimplwithas)TypePropZSPropSet)CZposesetmovecaseZelimapplyclearZhnfZintroZintrosZ
generalizerenamepatternafterZdestructZ	inductionusingZrefineZ	inversionZ	injectionZrewriteZcongrZunlockZcomputeZringfieldreplacefoldZunfoldZchangeZ
cutrewriteZsimplhavesuffZwlogsufficesZwithoutZlossZnat_normassertZcutZtrivialrevertZ
bool_congrZ	nat_congrZsymmetryZtransitivityautosplitleftrightZautorewritetautoZsetoid_rewriteZ	intuitionZeautoZeapplyZeconstructorZetransitivityconstructorZerewriteZredZcbvlazyZ
vm_computeZnative_computeZsubst)bynowdoneexactZreflexivityrJ   ZromegaomegaZliaZniaZlraZnraZpsatzZ
assumptionZsolveZcontradictionZdiscriminateZ
congruenceadmit)dolastfirsttryZidtacrepeat):z!=#&z&&z\(z\)z\*z\+,-z-\.z->\.z\.\.::::=z:>;z;;<z<-z<->=>z>]z>\}z\?z\?\?z\[z\[<z\[>z\[\|]_`z\{z\{<z\|z\|]z\}~z=>z/\\z\\/z\{\|z\|\}u   λ   ¬u   ∧u   ∨u   ∀u   ∃u   →u   ↔u   ≠u   ≤u   ≥z[!$%&*+\./:<=>?@^|~-]z[!?~]z[=<>@^|&+\*/$%-]\s+zfalse|true|\(\)|\[\]\(\*commentz'\b(?:[^\W\d][\w\']*\.)+[^\W\d][\w\']*\bz\bEquations\b\??z"\bSet(?=[ \t]+[A-Z][a-z][^\n]*?\.)\bprefixsuffixz\b([A-Z][\w\']*)z(%s)|Nz
(%s|%s)?%sz[^\W\d][\w']*z\d[\d_]*0[xX][\da-fA-F][\da-fA-F_]*0[oO][0-7][0-7_]*0[bB][01][01_]*z(-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)z7'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'z'.''"string[~?][a-z][\w\']*:\S[^(*)]+#push\*\)#pop[(*)]z[^"]+z""r\   z[A-Z][\w\']*(?=\s*\.)z[A-Z][\w\']*z[a-z][a-z0-9_\']*)rootrk   rw   Zdottedc                 C   s   d| krd| krdS d S )Nr   r       )textr   r   ;/tmp/pip-unpacked-wheel-jz2ojqiw/pygments/lexers/theorem.pyanalyse_text   s    zCoqLexer.analyse_text).__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesflagsZ	keywords1Z	keywords2Z	keywords3Z	keywords4Z	keywords5Z	keywords6Zkeyopts	operatorsZprefix_symsZ
infix_symsr   r
   BuiltinPseudor   r	   	Namespacer   r2   r   joinr   r   IntegerHexOctBinZFloatr   CharDoubler   r   r   tokensr   r   r   r   r   r      s~   	


&

;c                    @   s  e Zd ZdZdZdZdgZdgZdgZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdefdedfdejdfdedfe ee!fe ee!j"fe e	d d d!e#j$fe e
d d d!e#j%fe ed d d!e#fe ed d d!e#fe ed d d!e&j'fe ed d d!e&j(fe ed d d!e#j)fe ed d d!e#j)fe ed d d!e&j*fe ed d d!e#fe ed d d!e#fe ed d d!e#fe ed d d!e#fe ed d d!e#fe ed d d!e#fe ed d d!e#fe ed d d!e#j$fd"e+jfd#e,j%fd$e-j.fd%e-j/fd&e-j0fd'ed(fd)ej1d*fd+e,fgd,efded-fd.ed/fd0efgd1efdejd-fded-fd2ejd/fd3ed/fd"ejfd4efgd5efd"ejfd6efd7efd'ed/fgd8ej1fd"ejfd9ej1fd7ej1fd)ej1d/fgd:Z2d;S )<r   zF
    For the Isabelle proof assistant.

    .. versionadded:: 2.0
    ZIsabellezhttps://isabelle.in.tum.de/Zisabellez*.thyztext/x-isabelle)2andZassumesattachZavoidsZbinderZcheckingZclass_instanceZclass_relationZcode_moduleZcongsconstantZ
constrainsZ	datatypesZdefinesfilefixesr/   Z	functionshints
identifierr+   Zimportsr(   Zincludesinfixinfixlinfixrr,   keywordsrL   module_nameZmonosZ	morphismsZno_discs_selsZnotesZobtainsopenoutputZ
overloadedZ
parametricZ
permissiveZ	pervasiveZ
rep_compatZshows	structureZ
type_classZtype_constructor	uncheckedZunsafewhere)LZ
ML_commandZML_valZ
class_depsZ	code_depsZ	code_thmsZdisplay_draftsZfind_constsZfind_theoremsZfind_unused_assmsZfull_prfhelpZlocale_depsZnitpickprZprfZprint_abbrevsZprint_antiquotationsZprint_attributesZprint_bindsZ
print_bnfsZprint_bundlesZprint_case_translationsZprint_casesZprint_clasetZprint_classesZprint_codeprocZprint_codesetupZprint_coercionsprint_commandsZprint_contextZprint_defn_rulesZprint_dependenciesZprint_factsZprint_induct_rulesZprint_inductivesZprint_interpsZprint_localeZprint_localesZprint_methodsZprint_optionsZprint_ordersZprint_quot_mapsZprint_quotconstsZprint_quotientsZprint_quotientsQ3Zprint_quotmapsQ3Zprint_rulesZprint_simpsetZprint_stateZprint_statementZprint_syntaxZprint_theoremsZprint_theoryZprint_trans_rulesproppwdZ
quickcheckZrefuteZsledgehammerZ
smt_statusZsolve_directZspark_statusZtermZthmZthm_depsZthy_depsrV   Ztry0typZunused_thmsvaluevaluesZwelcomeZprint_ML_antiquotationsZprint_term_bindingsZvalues_prolog)Ztheorybeginr'   )headerZchapter)sectionZ
subsectionZsubsubsectionsectZsubsectZ
subsubsect)ZMLZML_fileabbreviationZadhoc_overloadingZaritiesZ	atom_declZattribute_setupZaxiomatizationZbundleZcase_of_simpsclassclassesZclassrelZ
codatatypeZ
code_abortZ
code_classZ
code_constZcode_datatypeZcode_identifierZcode_includeZcode_instanceZcode_modulenameZ
code_monadZcode_printingZcode_reflectZcode_reservedZ	code_typecoinductiveZcoinductive_setZconstscontextdatatypeZdatatype_newZdatatype_new_compatZdeclarationZdeclareZdefault_sortZdefer_recdef
definitionZdefsdomainZdomain_isomorphismZ	domaindefZequivarianceZexport_codeextractZextract_typeZfixrecr#   Z	fun_casesZ
hide_classZ
hide_constZ	hide_factZ	hide_typeZimport_const_mapZimport_fileZimport_tptpZimport_type_map	inductiveZinductive_setZinstantiationZjudgmentZlemmasZlifting_forgetZlifting_updateZlocal_setuplocaleZmethod_setupZnitpick_paramsZno_adhoc_overloadingZno_notationZ	no_syntaxZno_translationsZno_type_notationZnominal_datatypeZnonterminalnotationZnotepadoracleZoverloadingZparse_ast_translationZparse_translationZpartial_functionZ	primcorecZprimrecZprimrec_newZprint_ast_translationZprint_translationZquickcheck_generatorZquickcheck_paramsZrealizabilityZ	realizersZrecdefrecordZrefute_paramssetupZsetup_liftingZsimproc_setupZsimps_of_caseZsledgehammer_paramsZ	spark_endZ
spark_openZspark_open_sivZspark_open_vcgZspark_proof_functionsZspark_typesZ
statespaceZsyntaxZsyntax_declarationr   Ztext_rawZtheoremsZtranslationsZtype_notationZtype_synonymZtyped_print_translationZtypedeclZ
hoarestateZinstall_C_fileZinstall_C_typesZ	wpc_setupZc_defsZc_typesZmemsafeZ
SML_exportZSML_fileZ
SML_importZapproximateZbnf_axiomatization	cartoucheZdatatype_compatZfree_constructorsZfunctorZnominal_functionZnominal_terminationZpermanent_interpretationZbindsZdefiningZsmt2_statusZterm_cartoucheZboogie_fileZtext_cartouche)Zinductive_casesZinductive_simps)!Zax_specificationZbnfZ	code_predZ	corollaryZcpodefZcrunchZcrunch_ignoreZenriched_typefunctioninstanceZinterpretationlemmaZlift_definitionZnominal_inductiveZnominal_inductive2Znominal_primrecZpcpodefZprimcorecursiveZquotient_definitionZquotient_typeZ	recdef_tcZrep_datatypeZschematic_corollaryZschematic_lemmaZschematic_theoremZspark_vcspecificationsubclassZ	sublocaleZterminationtheoremZtypedefZwrap_free_constructors)rM   rO   Zqed)sorryZoops)rA   ZhenceZ	interpret)nextZproof)finallyfromr-   Z
ultimatelyr0   )ZML_prfZalsor   Z	includingr*   ZmoreoverZnotetxtZtxt_rawZ	unfoldingr=   write)assumer7   defr$   Zpresume)guessobtainshowZthus)r8   Z	apply_endZapply_tracebackdeferZprefer)r^   r]   ()[rd   re   rb   rZ   rp   +r[   !?){}.z..ri   rj   rk   z\\<open>r   u   \{\*|‹rl   rm   z\\<(\w|\^)*>z'[^\W\d][.\w']*rr   rs   rt   rv   rw   rf   factz/[^\s:|\[\]\-()=,+!?{}._][^\s:|\[\]\-()=,+!?{}]*rz   r{   r|   r}   r~   u   [^{*}\\‹›]+z	\\<close>u   \*\}|›z[{*}\\]z[^"\\]+z\\"z\\z[^`\\]+z\\`)r   rk   r   rw   r   N)3r   r   r   r   r   r   r   r   r   Zkeyword_minorZkeyword_diagZkeyword_thyZkeyword_sectionZkeyword_subsectionZkeyword_theory_declZkeyword_theory_scriptZkeyword_theory_goalZkeyword_qedZkeyword_abandon_proofZkeyword_proof_goalZkeyword_proof_blockZkeyword_proof_chainZkeyword_proof_declZkeyword_proof_asmZkeyword_proof_asm_goalZkeyword_proof_scriptr   Zproof_operatorsr   r   r   ZSymbolr   r   Wordr	   r   r2   r   ZHeadingZ
Subheadingr   Errorr   r
   r   r   r   r   ZOtherr   r   r   r   r   r      s   &


0



c                   @   s  e Zd ZdZdZdZdgZdgZdgZde	fde
jd	fd
edfdejfeddddefeddddejfeddddejfedefdefdejfdejfdejfde
jdfde
jfdejfdejjfgeddddejfeddddejfdejdfed dd!efed"gd#ejd$fed"gd%ejfd
ejd&fd'ejd$fd(ejfgd%e
jfd'e
jd$fd(e
jfgd)e
jfd*e
j fde
jd$fgd+Z!d,S )-r   zA
    For the Lean theorem prover.

    .. versionadded:: 2.0
    ZLeanz"https://github.com/leanprover/leanZleanz*.leanztext/x-leanri   z/--	docstringz/-rk   z--.*?$)r!   r#   Pir   rA   r   r   rC   r*   r+   r.   r-   r(   r0   Zcalcr&   rS   rl   rm   )r   rR   )ZSortr3   r2   )r   r   r]   r   r   r   rd   u   ⟨u   ⟩u   ‹u   ›u   ⦃u   ⦄r_   rZ   z[A-Za-z_\u03b1-\u03ba\u03bc-\u03fb\u1f00-\u1ffe\u2100-\u214f][.A-Za-z_\'\u03b1-\u03ba\u03bc-\u03fb\u1f00-\u1ffe\u2070-\u2079\u207f-\u2089\u2090-\u209c\u2100-\u214f0-9]*z0x[A-Za-z0-9]+z0b[01]+z\d+rv   rw   z='(?:(\\[\\\"'nt])|(\\x[0-9a-fA-F]{2})|(\\u[0-9a-fA-F]{4})|.)'rx   ry   )importZrenamingZhiding	namespacelocalprivate	protectedr   r   Zomitr   r   exportr   	attribute)(r   r   r   r   ZexampleZaxiomZaxiomsr   	constantsZuniverseZ	universesr   r   r   Zextendsr   r   r   znoncomputable theoryZnoncomputableZmutualmetar   Z	parameter
parametersvariable	variablesZreserve
precedenceZpostfixrn   r   r   r   r   r   rM   r'   Z
set_optionZrun_cmdz@\[r   )z#evalz#checkz#reducez#exitz#printz#help)ro   
expressionz\]r}   z[^/-]r{   z-/z[/-]z[^\\"]+z9(?:(\\[\\\"'nt])|(\\x[0-9a-fA-F]{2})|(\\u[0-9a-fA-F]{4})))r   r   r   rk   r   rw   N)"r   r   r   r   r   r   r   r   r   r   r   ZDocr   Singler   r	   r   r   r2   r   r
   r   r   r   r   r   r   r   r   ZDeclarationr   Z	MultilineZEscaper   r   r   r   r   r     s   
 

	 	
 
,




)r   reZpygments.lexerr   r   r   r   Zpygments.tokenr   r   r   r	   r
   r   r   r   r   r   __all__r   r   r   r   r   r   r   <module>   s   
0
  \