Ë
    |í¼eA  ã                   ó˜   — 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lmZ ddgZ G d„ de«      Z G d	„ de«      Zy)
a  
    pygments.lexers.theorem
    ~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for theorem-proving languages.

    See also :mod:`pygments.lexers.lean`

    :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)Ú	LeanLexerÚCoqLexerÚIsabelleLexerc                   óê  — 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j4                  fdej4                  f ee
dd¬«      ej4                  f eedd¬«      ef eedd¬«      ej8                  f eedd¬«      ef eedd¬«      ej.                  f eedd¬«      ej:                  fdefddj=                  eddd…   «      z  efd e›de›d!e›�efd"efd#e jB                  fd$e jD                  fd%e jF                  fd&e jH                  fd'e jJ                  fd(e&jN                  fd)e&jN                  fd*efd+e&jP                  d,fd-efd.ej,                  j.                  fgd/efded0fd1ed2fd3efgd4e&jP                  fd5e&jP                  fd+e&jP                  d2fgdefd6e)fd7ej4                  fd8ejT                  d2fd9ed2f e+d2«      gd:œZ,d;„ Z-y)<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\{\|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)ú|Néÿÿÿÿú(z)?z[^\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'.'ú'ú"Ústringz[~?][a-z][\w\']*:z\Sú[^(*)]+ú#pushú\*\)ú#popú[(*)]z[^"]+z""ré   z[A-Z][\w\']*(?=\s*\.)z[A-Z][\w\']*z[a-z][a-z0-9_\']*)Úrootr÷   r  Údottedc                 ó   — d| v rd| v ryy y )NrP   rM   é   © )Útexts    ú9/usr/lib/python3/dist-packages/pygments/lexers/theorem.pyÚanalyse_textzCoqLexer.analyse_textª   s   € Ø�D‰=˜W¨™_Øð -ˆ=ó    ).Ú__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   rf   r   Útokensr  r  r  r  r   r      s   „ ñð €DØ
 €CØˆg€GØ�€IØ�€Ià€Eð€Ið$€Ið€Ið€Ið€Ið€Ið€Gð )€IØ€KØ$€Jð �TˆNØ$ d§l¡l×&9Ñ&9Ð:Ø�g˜yÐ)Ø7¸Ð>Ø  '×"3Ñ"3Ð4à2°G×4EÑ4EÐFÙ�9 U°5Ô9¸7×;LÑ;LÐMÙ�9 U°5Ô9¸7ÐCÙ�9 U°5Ô9¸7¿<¹<ÐHÙ�9 U°5Ô9¸7ÐCÙ�9 U°5Ô9¸7¿>¹>ÐJÙ�9 U°5Ô9¸7×;KÑ;KÐLà  $Ð'Ø�s—x‘x ©¨"¨¡Ó.Ñ.°Ñ9Ú(ª+±yÐAÀ8ÐLà˜tÐ$à˜&Ÿ.™.Ð)Ø+¨V¯Z©ZÐ8Ø! 6§:¡:Ð.Ø §¡Ð,Ø8¸&¿,¹,ÐGàGÈÏÉÐUà�V—[‘[Ð!Ø�7ˆOà�6—=‘= (Ð+à! 4Ð(Ø�D—L‘L×'Ñ'Ð(ðG$
ðL ˜Ð!Ø�g˜wÐ'Ø�g˜vÐ&Ø�wÐð	
ð �v—}‘}Ð%Ø�F—M‘MÐ"Ø�6—=‘= &Ð)ð
ð �TˆNØ�KÐ Ø% t§~¡~Ð6Ø˜dŸj™j¨&Ð1Ø! 4¨Ð0Ù�F‹Oð
ñc9€Fóvr  c                   óT  — 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!jD                  f‘ e e	d d ¬!«      e#jH                  f‘ e e
d d ¬!«      e#jJ                  f‘ e ed d ¬!«      e#f‘ e ed d ¬!«      e#f‘ e ed d ¬!«      e&jN                  f‘ e ed d ¬!«      e&jP                  f‘ e ed d ¬!«      e#jR                  f‘ e ed d ¬!«      e#jR                  f‘ e ed d ¬!«      e&jT                  f‘ e ed d ¬!«      e#f‘ e ed d ¬!«      e#f‘ e ed d ¬!«      e#f‘ e ed d ¬!«      e#f‘ e ed d ¬!«      e#f‘ e ed d ¬!«      e#f‘ e ed d ¬!«      e#f‘ e ed d ¬!«      e#jH                  f‘d"e+j>                  f‘d#e,jJ                  f‘d$e-j\                  f‘d%e-j^                  f‘d&e-j`                  f‘d'ed(f‘d)ejb                  d*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jb                  fd"ej>                  fd9ejb                  fd7ejb                  fd)ejb                  d/fgd:œZ2y;)<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Ú
identifierr}   Úimportsrz   Ú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Úbeginry   )Ú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Úfixrecrt   Ú	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Úalsor   Ú	includingr|   ÚmoreoverÚnoteÚtxtÚtxt_rawÚ	unfoldingrš   Úwrite)Úassumer�   Údefru   Úpresume)ÚguessÚobtainÚshowÚthus)r�   Ú	apply_endÚapply_traceÚbackÚdeferÚprefer)rë   rê   rþ   ú)ú[rð   rñ   rî   rç   rü   ú+rè   ú!ú?)ú{ú}ú.z..rõ   rö   r÷   z\\<open>r7  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÷   r7  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.  ÚOtherr2  r  r  r  r   r   ¯   s˜  „ ñð €DØ
'€CØˆl€GØ�	€IØ"Ð#€Ið
€Mð€Lð, -€Kà+€OðÐð
$ÐðL CÐð
Ðð (€KØ-Ðà7Ðà+ÐðÐðÐð
 DÐà@ÐðÐð€Ið
 ,€Oð.
Ø�ZÐ ð.
à�g˜yÐ)ð.
ð ˜&Ÿ-™-¨Ð5ð.
ð ˜& +Ð.ð	.
ñ �9Ó˜xÐ(ð.
ñ �?Ó# X§]¡]Ð3ð.
ñ �=¨°uÔ=¸w¿~¹~ÐNð.
ñ �<¨°eÔ<¸g¿l¹lÐKð.
ñ �; u°UÔ;¸WÐEð.
ñ Ð&¨u¸UÔCÀWÐMð.
ñ  �?¨5¸Ô?ÀÇÁÐQð!.
ñ" Ð%¨e¸EÔBÀG×DVÑDVÐWð#.
ñ& Ð&¨u¸UÔCÀW×EVÑEVÐWð'.
ñ( Ð(°¸uÔEÀw×GXÑGXÐYð).
ñ, Ð(°¸uÔEÀwÇ}Á}ÐUð-.
ñ0 �; u°UÔ;¸WÐEð1.
ñ2 Ð%¨e¸EÔBÀGÐLð3.
ñ4 Ð&¨u¸UÔCÀWÐMð5.
ñ6 Ð%¨e¸EÔBÀGÐLð7.
ñ: Ð&¨u¸UÔCÀWÐMð;.
ñ< Ð$¨U¸5ÔAÀ7ÐKð=.
ñ> Ð)°%ÀÔFÈÐPð?.
ñB Ð'°¸eÔDÀgÇnÁnÐUðC.
ðF ˜dŸk™kÐ*ðG.
ðJ   §¡Ð+ðK.
ðN ,¨V¯Z©ZÐ8ðO.
ðP " 6§:¡:Ð.ðQ.
ðR   §¡Ð,ðS.
ðV �6˜8Ð$ðW.
ðX �6—<‘< Ð(ðY.
ðZ @ÀÐFð[.
ð` ˜Ð!Ø�g˜wÐ'Ø�g˜vÐ&Ø�wÐð	
ð   Ð(Ø˜&Ÿ-™-¨Ð1Ø˜& 'Ð*Ø˜6Ÿ=™=¨&Ð1Ø˜& &Ð)Ø˜fŸm™mÐ,Ø˜Ð ð
ð ˜Ð Ø˜fŸm™mÐ,Ø�VÐØ�FˆOØ�6˜6Ð"ð
ð ˜Ÿ™Ð&Ø˜fŸm™mÐ,Ø�V—\‘\Ð"Ø�F—L‘LÐ!Ø�6—<‘< Ð(ð
ñMM�Fr  )r  ÚreÚpygments.lexerr   r   r   r   Úpygments.tokenr   r   r	   r
   r   r   r   r   r   r   Úpygments.lexers.leanr   Ú__all__r   r   r  r  r  ú<module>r¬     sN   ðñ
ó 
ç >Ó >÷-÷ -÷ -å *à�Ð
'€ôUˆzô UôpX�Jõ Xr  