o
    	ȷeN                     @   s   d Z ddlZddl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 g d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-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerdefaultwords)
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
    Coqzhttp://coq.inria.fr/coqz*.vz
text/x-coqr   )ZSectionModuleEndRequireImportExportVariable	Variables	Parameter
ParametersAxiomAxioms
Hypothesis
HypothesesNotationLocalTacticReservedScopeOpenCloseBindDelimit
DefinitionExampleLetLtacFixpoint
CoFixpointMorphismRelationImplicit	ArgumentsTypesUnset
ContextualStrictPrenex	Implicits	InductiveCoInductiveRecord	StructureVariant	CanonicalCoercionTheoremLemmaFactRemark	CorollaryPropositionPropertyGoalProofRestartSaveQedDefinedAbortAdmittedHintResolveRewriteViewSearchComputeEvalShowPrintPrintingAllGraphProjectionsinsideoutsideCheckGlobalInstanceClassExistingUniversePolymorphicMonomorphicContextSchemeFromUndoFailFunction)forallexistsexists2funfixcofixstructmatchendinreturnletifisthenelseforofnosimplwithas)TypePropSPropSet)Cposesetmovecaseelimapplyclearhnfintrointros
generalizerenamepatternafterdestruct	inductionusingrefine	inversion	injectionrewritecongrunlockcomputeringfieldreplacefoldunfoldchange
cutrewritesimplhavesuffwlogsufficeswithoutlossnat_normassertcuttrivialrevert
bool_congr	nat_congrsymmetrytransitivityautosplitleftrightautorewritetautosetoid_rewrite	intuitioneautoeapplyeconstructoretransitivityconstructorerewriteredcbvlazy
vm_computenative_computesubst)bynowdoneexactreflexivityr   romegaomegalianialranrapsatz
assumptionsolvecontradictiondiscriminate
congruenceadmit)dolastfirsttry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_\']*)rootr   r  dottedc                 C   s   d| v r
d| v rdS d S d S )NrM   rJ       )textr  r  N/var/www/ideatree/venv/lib/python3.10/site-packages/pygments/lexers/theorem.pyanalyse_text   s   zCoqLexer.analyse_text).__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesflags	keywords1	keywords2	keywords3	keywords4	keywords5	keywords6keyopts	operatorsprefix_syms
infix_symsr   r	   BuiltinPseudor   r   	Namespacer   r   r%   joinr   r   IntegerHexOctBinFloatr
   CharDoubler   rc   r   tokensr  r  r  r  r  r      s    	


&

;r   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g 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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
    Isabellezhttps://isabelle.in.tum.de/isabellez*.thyztext/x-isabelle)2andassumesattachavoidsbindercheckingclass_instanceclass_relationcode_modulecongsconstant
constrains	datatypesdefinesfilefixesr~   	functionshints
identifierrz   importsrw   includesinfixinfixlinfixrr{   keywordsr   module_namemonos	morphismsno_discs_selsnotesobtainsopenoutput
overloaded
parametric
permissive	pervasive
rep_compatshows	structure
type_classtype_constructor	uncheckedunsafewhere)L
ML_commandML_val
class_deps	code_deps	code_thmsdisplay_draftsfind_constsfind_theoremsfind_unused_assmsfull_prfhelplocale_depsnitpickprprfprint_abbrevsprint_antiquotationsprint_attributesprint_binds
print_bnfsprint_bundlesprint_case_translationsprint_casesprint_clasetprint_classesprint_codeprocprint_codesetupprint_coercionsprint_commandsprint_contextprint_defn_rulesprint_dependenciesprint_factsprint_induct_rulesprint_inductivesprint_interpsprint_localeprint_localesprint_methodsprint_optionsprint_ordersprint_quot_mapsprint_quotconstsprint_quotientsprint_quotientsQ3print_quotmapsQ3print_rulesprint_simpsetprint_stateprint_statementprint_syntaxprint_theoremsprint_theoryprint_trans_rulesproppwd
quickcheckrefutesledgehammer
smt_statussolve_directspark_statustermthmthm_depsthy_depsr   try0typunused_thmsvaluevalueswelcomeprint_ML_antiquotationsprint_term_bindingsvalues_prolog)theorybeginrv   )headerchapter)section
subsectionsubsubsectionsectsubsect
subsubsect)MLML_fileabbreviationadhoc_overloadingarities	atom_declattribute_setupaxiomatizationbundlecase_of_simpsclassclassesclassrel
codatatype
code_abort
code_class
code_constcode_datatypecode_identifiercode_includecode_instancecode_modulename
code_monadcode_printingcode_reflectcode_reserved	code_typecoinductivecoinductive_setconstscontextdatatypedatatype_newdatatype_new_compatdeclarationdeclaredefault_sortdefer_recdef
definitiondefsdomaindomain_isomorphism	domaindefequivarianceexport_codeextractextract_typefixrecrq   	fun_cases
hide_class
hide_const	hide_fact	hide_typeimport_const_mapimport_fileimport_tptpimport_type_map	inductiveinductive_setinstantiationjudgmentlemmaslifting_forgetlifting_updatelocal_setuplocalemethod_setupnitpick_paramsno_adhoc_overloadingno_notation	no_syntaxno_translationsno_type_notationnominal_datatypenonterminalnotationnotepadoracleoverloadingparse_ast_translationparse_translationpartial_function	primcorecprimrecprimrec_newprint_ast_translationprint_translationquickcheck_generatorquickcheck_paramsrealizability	realizersrecdefrecordrefute_paramssetupsetup_liftingsimproc_setupsimps_of_casesledgehammer_params	spark_end
spark_openspark_open_sivspark_open_vcgspark_proof_functionsspark_types
statespacesyntaxsyntax_declarationr  text_rawtheoremstranslationstype_notationtype_synonymtyped_print_translationtypedecl
hoarestateinstall_C_fileinstall_C_types	wpc_setupc_defsc_typesmemsafe
SML_exportSML_file
SML_importapproximatebnf_axiomatization	cartouchedatatype_compatfree_constructorsfunctornominal_functionnominal_terminationpermanent_interpretationbindsdefiningsmt2_statusterm_cartoucheboogie_filetext_cartouche)inductive_casesinductive_simps)!ax_specificationbnf	code_pred	corollarycpodefcrunchcrunch_ignoreenriched_typefunctioninstanceinterpretationlemmalift_definitionnominal_inductivenominal_inductive2nominal_primrecpcpodefprimcorecursivequotient_definitionquotient_type	recdef_tcrep_datatypeschematic_corollaryschematic_lemmaschematic_theoremspark_vcspecificationsubclass	sublocaleterminationtheoremtypedefwrap_free_constructors)r   r   qed)sorryoops)r   hence	interpret)nextproof)finallyfromr|   
ultimatelyr   )ML_prfalsoinclude	includingry   moreovernotetxttxt_raw	unfoldingr   write)assumer   defrr   presume)guessobtainshowthus)r   	apply_endapply_tracebackdeferprefer)r   r   ()[r   r   r   r   r   +r   !?){}.z..r   r   r   z\\<open>r3  u   \{\*|‹r   r   z\\<(\w|\^)*>z'[^\W\d][.\w']*r   r   r   r   r  r   factz/[^\s:|\[\]\-()=,+!?{}._][^\s:|\[\]\-()=,+!?{}]*r  r  r  r  r  u   [^{*}\\‹›]+z	\\<close>u   \*\}|›z[{*}\\]z[^"\\]+z\\"z\\z[^`\\]+z\\`)r	  r   r3  r  r  N)3r  r  r  r  r  r  r  r  r  keyword_minorkeyword_diagkeyword_thykeyword_sectionkeyword_subsectionkeyword_theory_declkeyword_theory_scriptkeyword_theory_goalkeyword_qedkeyword_abandon_proofkeyword_proof_goalkeyword_proof_blockkeyword_proof_chainkeyword_proof_declkeyword_proof_asmkeyword_proof_asm_goalkeyword_proof_scriptr!  proof_operatorsr   r   r
   Symbolr   r   Wordr   r%  r   r   Heading
Subheadingr&  Errorr   r	   r   r)  r*  r+  Otherr/  r  r  r  r  r      s    &

	!#%'()+
,-0




r   c                   @   sj  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jfeddddej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dde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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
    Leanz"https://github.com/leanprover/leanleanz*.leanztext/x-leanr   z/--	docstringz/-r   z--.*?$)importrenaminghiding	namespacelocalprivate	protectedr  ro  omitr  r  exportrQ  	attributer   r   )(rM  r`  rx  r  exampleaxiomaxiomsr<  	constantsuniverse	universesr  r  rY  extendsr  rK  r  znoncomputable theorynoncomputablemutualmetar  	parameter
parametersvariable	variablesreserve
precedencepostfixr   r  rG  rH  rI  r  r   rv   
set_optionrun_cmdz@\[[^\]]*\])rn   rq   Pirk  r   r|  rw  r   ry   rz   r}   r|   rw   r   calcru   r   )rd  r   )Sortr   r   )z#evalz#checkz#reducez#exitz#printz#help)r   )r  r  r   r  r  r  r   u   ⟨u   ⟩u   ‹u   ›u   ⦃u   ⦄r   r   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+r   r  z='(?:(\\[\\\"'nt])|(\\x[0-9a-fA-F]{2})|(\\u[0-9a-fA-F]{4})|.)'r  r  z[^/-]r  z-/r  z[/-]z[^\\"]+z9(?:(\\[\\\"'nt])|(\\x[0-9a-fA-F]{2})|(\\u[0-9a-fA-F]{4})))r	  r   r  r  N)!r  r  r  r  r  r  r  r  r  r   r
   Docr   Singler   r   r&  Declarationr   r  r   r   r	   r   r(  r.  r-  r   r$  r%  	MultilineEscaper/  r  r  r  r  r     s|    
		


C




r   )r  repygments.lexerr   r   r   pygments.tokenr   r   r   r   r	   r
   r   r   r   r   __all__r   r   r   r  r  r  r  <module>   s    
0  \