o
    xiZJ                     @   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 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-2017 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)CoqLexerIsabelleLexer	LeanLexerc                   @   s  e 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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de ej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gd*efded+fd,ed-fd.efgd/e%j'fd0e%j'fd'e%j'd-fgdefd1e(fd2ejfd3ej)d-fd4ed-fe*d-gd5Z+d6d7 Z,dS )8r   zZ
    For the `Coq <http://coq.inria.fr/>`_ theorem prover.

    .. versionadded:: 1.5
    Coqcoqz*.vz
text/x-coq)MSectionModuleEndRequireImportExportVariable	Variables	Parameter
ParametersAxiom
Hypothesis
HypothesesNotationLocalTacticReservedScopeOpenCloseBindDelimit
DefinitionLetLtacFixpoint
CoFixpointMorphismRelationImplicit	ArgumentsSetUnset
ContextualStrictPrenex	Implicits	InductiveCoInductiveRecord	Structure	CanonicalCoercionTheoremLemma	CorollaryPropositionFactRemarkExampleProofGoalSaveQedDefinedHintResolveRewriteViewSearchShowPrintPrintingAllGraphProjectionsinsideoutsideCheckGlobalInstanceClassExistingUniversePolymorphicMonomorphicContext)forallexistsexists2funfixcofixstructmatchendinreturnletifisthenelseforofnosimplwithasTypeProp)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doneexactreflexivityr   romegaomega
assumptionsolvecontradictiondiscriminate
congruence)dolastfirsttryidtacrepeat)1!=#&&&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[=<>@^|&+\*/$%-])unitnatboolstringasciilist\s+zfalse|true|\(\)|\[\]\(\*comment\bprefixsuffixz\b([A-Z][\w\']*)z(%s)|Nz
(%s|%s)?%sz\b(%s)\bz[^\W\d][\w']*\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'.''"r   [~?][a-z][\w\']*:[^(*)]+#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rdS d S )Nz(*T)
startswith)text r  X/home/ubuntu/.local/lib/python3.10/site-packages/wandb/vendor/pygments/lexers/theorem.pyanalyse_text   s   
zCoqLexer.analyse_text)-__name__
__module____qualname____doc__namealiases	filenames	mimetypes	keywords1	keywords2	keywords3	keywords4	keywords5	keywords6keyopts	operatorsprefix_syms
infix_syms
primitivesr   r	   BuiltinPseudor   r   r   	Namespacerv   r#   joinr   r   IntegerHexOctBinFloatr
   CharDoubler   rZ   r   tokensr  r  r  r  r  r      s|    

"

7r   c                   @   s  e 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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)fd"e)fd#e)j"fd$e)fd%e*j+fd&e*j,fd'e*j-fd(e.d)fd*e.j/d+fd,efded-fd.ed/fd0efgd1efd2ed/fd3efd4efgd5e.fd e.j(fd6e.fd7e.fd(e.d/fgd8e.j/fd e.j(fd9e.j/fd7e.j/fd*e.j/d/fgd:Z0d;S )<r   zf
    For the `Isabelle <http://isabelle.in.tum.de/>`_ proof assistant.

    .. versionadded:: 2.0
    Isabelleisabellez*.thyztext/x-isabelle)2andassumesattachavoidsbindercheckingclass_instanceclass_relationcode_modulecongsconstant
constrains	datatypesdefinesfilefixesrp   	functionshints
identifierrl   importsri   includesinfixinfixlinfixrrm   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beginrh   )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fixrecrc   	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fromrn   
ultimatelyrs   )ML_prfalsoinclude	includingrk   moreovernotetxttxt_raw	unfoldingr   write)assumer{   defrd   presume)guessobtainshowthus)r}   	apply_endapply_tracebackdeferprefer)r   r   ()[r   r   r   r   r   +r   !?){}...r   r   r   z\{\*r  r   r   z\\<\w*>z[^\W\d][.\w']*z\?[^\W\d][.\w']*z'[^\W\d][.\w']*r   r   r   r   r   r   r   factr   r   r   r   r  z[^*}]+z\*\}r   r   z[^"\\]+z\\"z\\z[^`\\]+z\\`)r  r   r  r   r  N)1r	  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   r   Wordr   r  rv   r   Heading
Subheadingr  ErrorSymbolr	   r   r!  r"  r#  r
   Otherr'  r  r  r  r  r      s    &

 "$%&()*+-
.1

r   c                   @   s  e Zd ZdZdZdgZdgZdgZej	ej
B ZdZdZdZd	Zd
Zdefded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ejjfeeefdefdejfdejdfde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"fdejdfgdZ#dS )r   zm
    For the `Lean <https://github.com/leanprover/lean>`_
    theorem prover.

    .. versionadded:: 2.0
    Leanleanz*.leanztext/x-lean)=importr  opaque_hinttactic_hintr  renaminginlinehidingexposing	parameter
parameters
conjecture
hypothesisrE  r=  variable	variablesrX  axiomr  rQ  universealiasra  options
precedencepostfixr   
calc_trans
calc_subst	calc_reflr?  r@  rA  r  evalcheckexitcoercionrh   privater   	namespacerh  rC  r  r  	protectedexposeexport
set_optionadd_rewriteextendsrI  exampler4  	constantsprintopaque	reducibleirreducible)r`   rc   Pirs  rc  r   rt  ro  takerk   rl   ro   rn   r   ri   rs   r  ra  r[  calcrg   ru   ):r   r   r   r   *r~  r   /@r  r   z-.r   r  r  z...r   r   r   r   r   r   r   z==r   r   r   z||r   r   z<=z>=z/\z\/u   ∀r   r   u   ↔u   ∧u   ∨u   ≠u   ≤u   ≥   ¬u   ⁻¹u   ⬝u   ▸u   →u   ∃u   ℕu   ℤu   ≈   ×u   ⌞u   ⌟u   ≡u   ⟨u   ⟩)r{  r|  r   r  r  r}  r   u   ⦃u   ⦄r   r   r   z/-r   z--.*?$r   r   u\   [A-Za-z_α-κμ-ϻἀ-῾℀-⅏][A-Za-z_'α-κμ-ϻἀ-῾⁰-⁹ⁿ-₉ₐ-ₜ℀-⅏0-9]*z\d+r   r   r   z[^/-]r   z-/r   z[/-]z[^\\"]+z\\[n"\\])r  r   r   N)$r	  r
  r  r  r  r  r  r  re	MULTILINEUNICODEflagsr  r  r  r  punctuationr   r   Singler   r   r  rv   r	   r  r  r   r   r   r
   r&  r   	MultilineEscaper'  r  r  r  r  r   {  sJ    	





r   )r  r  pygments.lexerr   r   r   pygments.tokenr   r   r   r   r	   r
   r   r   r   __all__r   r   r   r  r  r  r  <module>   s   
,  Y