3 ��XZJ � @ s� d Z ddlZddlmZmZmZ ddlmZmZm Z m Z mZmZm Z mZmZ dddgZG dd� de�ZG d d� de�ZG d d� de�ZdS )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 M @ s: e Zd ZdZdZdgZdgZdgZ�dZ�dZ �dZ �d Z�d!Z�d"Z �d#Zd�Zd�Zd�Z�d$Zd�efd�ejjfd�ed�feed�d�d��ejfee d�d�d��efee d�d�d��ejfeed�d�d��efeed�d�d��ejfee d�d�d��ejfd�efd��d je�d�d�d%� � ef�deeef ef�d�d je� ejf�def�dej f�dej!f�dej"f�d ej#f�d ej$f�de%j&f�de%j&f�d ef�de%j'd�f�defg�defd�e�df�de�df�defg�de%j'f�de%j'f�de%j'�dfgd�efd�e(f�dejf�dej)�df�de�dfe*�d�g�d�Z+�d�d� Z,�dS (& r zZ For the `Coq <http://coq.inria.fr/>`_ theorem prover. .. versionadded:: 1.5 ZCoqZcoqz*.vz text/x-coq�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�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�reflexivity�romega�omega� assumption�solve� contradiction�discriminate� congruence�do�last�first�try�idtac�repeat�!=�#�&�&&�\(�\)�\*�\+�,�-�-\.�->�\.�\.\.�:�::�:=�:>�;�;;�<�<-�<->�=�>�>]�>\}�\?�\?\?�\[�\[<�\[>�\[\|�]�_�`�\{�\{<�\|�\|]�\}�~�=>�/\\�\\/�\{\|�\|\}� Π� λz[!$%&*+\./:<=>?@^|~-]z[!?~]z[=<>@^|&+\*/$%-]�unit�nat�bool�string�ascii�listz\s+zfalse|true|\(\)|\[\]z\(\*�commentz\b)�prefix�suffixz\b([A-Z][\w\']*)z(%s)�|N� z (%s|%s)?%sz\b(%s)\bz [^\W\d][\w']*z\d[\d_]*z0[xX][\da-fA-F][\da-fA-F_]*z0[oO][0-7][0-7_]*z0[bB][01][01_]*z(-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)z7'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'z'.'�'�"z[~?][a-z][\w\']*:z[^(*)]+z#pushz\*\)z#popz[(*)]z[^"]+z""z[A-Z][\w\']*(?=\s*\.)z[A-Z][\w\']*z[a-z][a-z0-9_\']*)�rootr r� Zdottedc C s | j d�rdS d S )Nz(*T)� startswith)�text� r �/usr/lib/python3.6/theorem.py�analyse_text� s zCoqLexer.analyse_text)Mr r r r r r r r r r r r r r r r r! r"