sage
Steinhaus-Johnson-Trotter algorithm for permutations
#38064
Merged

Steinhaus-Johnson-Trotter algorithm for permutations #38064

JosePisco
JosePisco353 days ago🚀 1

I suggest this diff against develop to implement the Steinhaus-Johnson-Trotter algorithm that generates the permutations of a list using only transpositions of two elements of the list. The algorithm can be selected upon initialization with the parameter of the same name, defaults to "lex" which is the current algorithm.

Since the Permutation class is a bit weird and creates a new list and a new object on every iteration, I had to tweak a bit the parameters in input to the class __init__ method adding

  • algorithm: this one is fine, it allows to choose which algorithm to use to generate the permutations
  • directions: this one is meant to keep track of the internal state specific to the SJT algorithm. To find the two elements to transpose for the next permutation, we need to find elements according to some conditions regarding each of their direction. Since the Permutation class creates a new object at each iteration, I tried to find the best way to pass on the internal state to the new object. Maybe the internal state can be directly computed from the list, I haven't checked. Because of this dependency on the internal state, only the identity permutation can be used when initializing a Permutation object with algorithm='sjt' (see examples from doc). I am aware that adding an extra optional parameter to the object construction might not be the best option thus I will gladly take your feedback and opinions.

I haven't implemented the prev() method. I think it should be done if this is accepted.

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

⌛ Dependencies

github-actions github-actions added v: moderate
mkoeppe mkoeppe added c: combinatorics
github-actions
github-actions353 days ago (edited 338 days ago)

Documentation preview for this PR (built with commit f9d76cf; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

grhkm21
grhkm21349 days ago

Linter is failing. I think a few of the other CI fails are fixed in some PRs, so maybe a rebase to trigger CI will resolve them.

grhkm21
grhkm21 requested changes on 2024-05-27
grhkm21349 days ago

You are also missing examples/doctests in docstrings everywhere - see developer guide, in particular the EXAMPLES block.

Conversation is marked as resolved
Show resolved
src/sage/combinat/SJT.py
1r"""
2Steinhaus-Johnson-Trotter algorithm.
3
4
The Steinhaus-Johnson-Trotter algorithm generates permutations in a specific
5
order by transposing only two elements from the list at each operation. The
6
algorithm stores an internal state for every element in the permutated list
7
which corresponds to their direction. To know which elements to move, the
8
internal state table is accessed and the transposition of two elements is then
9
done.
10
11
It is important to notice that the permutations are generated in a different
12
order than the default lexicographic algorithm.
13
14
The class defined here is meant to be used in the ``Permutation`` class when
15
called with the parameter ``algorithm='sjt'``.
grhkm21349 days ago
Suggested change
The Steinhaus-Johnson-Trotter algorithm generates permutations in a specific
order by transposing only two elements from the list at each operation. The
algorithm stores an internal state for every element in the permutated list
which corresponds to their direction. To know which elements to move, the
internal state table is accessed and the transposition of two elements is then
done.
It is important to notice that the permutations are generated in a different
order than the default lexicographic algorithm.
The class defined here is meant to be used in the ``Permutation`` class when
called with the parameter ``algorithm='sjt'``.
The Steinhaus-Johnson-Trotter algorithm generates all permutations of a list in an order such that each permutation is obtained by transposing two adjacent elements from the previous permutation.
To achieve this, in addition to the permutation itself, the next movement direction for each element is also stored.
Note that the permutations are not generated in lexicographic order.

Line wrap yourself.

Conversation is marked as resolved
Show resolved
src/sage/combinat/SJT.py
37
38 INPUT:
39
40
- ``l`` -- list: a list of ordered ``int``.
41
42
- ``directions`` -- list (default: ``None`` ): a list of directions for
43
each element in the permuted list. Used when constructing permutations
44
from a pre-defined internal state. There are three possible values:
45
46
- ``-1`` -> element tranposes to the left
47
48
- ``1`` -> element transposes to the right
49
50
- ``0`` -> element does not move
grhkm21349 days ago
Suggested change
- ``l`` -- list: a list of ordered ``int``.
- ``directions`` -- list (default: ``None`` ): a list of directions for
each element in the permuted list. Used when constructing permutations
from a pre-defined internal state. There are three possible values:
- ``-1`` -> element tranposes to the left
- ``1`` -> element transposes to the right
- ``0`` -> element does not move
- ``l`` -- list; a list of ordered ``int``.
- ``directions`` -- list (default: ``None`` ); a list of directions for
each element in the permuted list. Used when constructing permutations
from a pre-defined internal state. The directions have three possible values:
- ``-1``: element tranposes to the left
- ``1``: element transposes to the right
- ``0``: element does not move
Conversation is marked as resolved
Show resolved
src/sage/combinat/SJT.py
28# (at your option) any later version.
29# https://www.gnu.org/licenses/
30# ****************************************************************************
31
class SJT:
grhkm21349 days ago

You need a class string. An approximate version of the string at the top of the file would work. It should just be an explanation of how the class works, along with examples i.e. doctests of usage.

Conversation is marked as resolved
Show resolved
src/sage/combinat/SJT.py
57 self.__n = len(l)
58
59 if directions is None:
60
if not all(l[i] <= l[i+1] for i in range(len(l) - 1)):
61
raise ValueError("No internal state directions were given for "
62
"non-identity starting permutation for "
63
"Steinhaus-Johnson-Trotter algorithm. Expected identity "
64
"permutation.")
grhkm21349 days ago

So you are assuming that the "original list" is non-decreasing? That should be mentioned in the class string as well. Also, errors start with lower case c.f. one of the PEP

Suggested change
if not all(l[i] <= l[i+1] for i in range(len(l) - 1)):
raise ValueError("No internal state directions were given for "
"non-identity starting permutation for "
"Steinhaus-Johnson-Trotter algorithm. Expected identity "
"permutation.")
if not all(l[i] <= l[i+1] for i in range(len(l) - 1)):
raise ValueError("non-decreasing list expected when no `directions` given")
Conversation is marked as resolved
Show resolved
src/sage/combinat/SJT.py
grhkm21349 days ago
Suggested change
if directions[i] != 0:
if directions[i]:

0 and None are Falsey

JosePisco348 days ago

Not a fan of your suggestion, I'm in favor of code verbosity for better maintenance.

Conversation is marked as resolved
Show resolved
src/sage/combinat/SJT.py
grhkm21349 days ago

Why not implement __next__ instead, so that this becomes an iterator?

grhkm21349 days ago

Actually now that I checked, current Permutation objects implement both:

sage: p = Permutation([1, 2, 3, 4])
sage: p
[1, 2, 3, 4]
sage: p.next()
[1, 2, 4, 3]
sage: next(p)
[1, 2, 4, 3]

So I think you can just add an alias __next__ = next below.

Conversation is marked as resolved
Show resolved
src/sage/combinat/SJT.py
138 if i > new_pos:
139 directions[i] = -1
140
141
return perm, directions
grhkm21349 days ago

Is it a good idea to return another SJT element directly, or would the construction be slow?

JosePisco348 days ago

That was one of my design dilemmas. It's more costly indeed but since the Permutation class already does this, maybe aligning to something similar would be great?

JosePisco348 days ago

I've tried to do this. However, since a SJT object is created on each Permutation object creation, and because the check on the directions (if non-id perm is given and no directions: raises an error) is done on SJT creation, I don't think it's too bad as it is now.
SJT class is not meant to be used as is but more a support for Permutation to use.

What do you think ?

JosePisco346 days ago👍 1

Tried something in a69bf38

I think it follows our discussion

Conversation is marked as resolved
Show resolved
src/sage/combinat/permutation.py
308309 the permutation obtained from the pair using the inverse of the
309310 Robinson-Schensted algorithm.
310311
311 - ``check`` (boolean) -- whether to check that input is correct. Slows
312 the function down, but ensures that nothing bad happens. This is set to
313 ``True`` by default.
312
- ``check`` boolean (default: ``True``) -- whether to check that input is
313
correct. Slows the function down, but ensures that nothing bad happens. This
314
is set to ``True`` by default.
315
316
- ``algorithm`` string (default: ``lex``) -- the algorithm used to generate
317
the permutations. Supported algorithms are:
318
319
- ``lex``: lexicographic order generation, this is the default algorithm.
320
321
- ``sjt``: Steinhaus-Johnson-Trotter algorithm to generate permutations
322
using only transposition of two elements in the list. It is highly
323
recommended to set ``check=True`` (default value).
324
325
- ``directions`` list (default: ``None``) -- the list of directions to be
326
used with ``sjt`` algorithm when initializing the ``Permutation`` object
327
with non-identity permutation. Mainly used to handle internal states, best
328
to leave it by default.
grhkm21349 days ago

Follow the formatting above

Conversation is marked as resolved
Show resolved
src/sage/combinat/permutation.py
378393 sage: type(p)
379394 <class 'sage.combinat.permutation.StandardPermutations_n_with_category.element_class'>
380395
396
Construction using the Steinhaus-Johnson Trotter algorithm to generate
397
the permutations (lexicographic algorithm by default)::
grhkm21349 days ago
Suggested change
Construction using the Steinhaus-Johnson Trotter algorithm to generate
the permutations (lexicographic algorithm by default)::
Generate permutations using the Steinhaus-Johnson Trotter algorithm. The output is not in lexicographic order::
Conversation is marked as resolved
Show resolved
src/sage/combinat/permutation.py
403 sage: p = p.next(); p
404 [1, 4, 2, 3]
405 sage: p = Permutation([1, 2, 3], algorithm='sjt')
406
sage: for _ in range(6):
407
....: p = p.next()
408
....:
grhkm21349 days ago

Replace this with [next(p) for _ in range(6)] directly?

JosePisco347 days ago (edited 347 days ago)

Permutation objects need reassignment to go to the next permutation, this wouldn't work and loop on the same one. I think this is rather fine and self-explanatory.

sage: p = Permutation([1, 2, 3], algorithm='sjt')
sage: [next(p) for  _ in range(6)]
[[1, 3, 2], [1, 3, 2], [1, 3, 2], [1, 3, 2], [1, 3, 2], [1, 3, 2]]
JosePisco346 days ago

I'm not a fan of this anyway, the loop looks more verbose which is what we want for examples.

Conversation is marked as resolved
Show resolved
src/sage/combinat/permutation.py
486529 else:
487530 raise ValueError("cannot convert l (= %s) to a Permutation" % l)
488531
532
if algorithm != "lex" and algorithm != "sjt":
533
raise ValueError("Unsupported algorithm %s; expected 'lex' or 'sjt'"
534
% algorithm)
grhkm21349 days ago

This duplicates the check below so remove this

JosePisco348 days ago (edited 348 days ago)

This checks for legal a algorithm value. The check below (redundant I agree), is done to init or not with an SJT object and because the input is checked before, the two conditions are in different parts of the code.

JosePisco348 days ago

Okay that's my bad, I thought you were referring to the check on line 600.

Conversation is marked as resolved
Show resolved
src/sage/combinat/permutation.py
550 is correct. Slows the function down, but ensures that nothing bad
505551 happens.
506552
507 This is set to ``True`` by default.
553
- ``algorithm`` string (default: ``lex``) -- the algorithm used to
grhkm21349 days ago

Add space above, and also format

JosePisco JosePisco force pushed from fe085c6e to 80ca8496 348 days ago
github-actions github-actions added v: large
github-actions github-actions removed v: moderate
JosePisco
JosePisco347 days ago

Thanks to @grhkm21 for the review and for the tips.
After a rebase on develop, I hope commit c2fbaff meets the requested changes.

grhkm21
grhkm21 requested changes on 2024-05-30
grhkm21346 days ago

Sorry I think I messed up the styling for input docstring before

Conversation is marked as resolved
Show resolved
src/sage/combinat/permutation.py
308309 the permutation obtained from the pair using the inverse of the
309310 Robinson-Schensted algorithm.
310311
311 - ``check`` (boolean) -- whether to check that input is correct. Slows
312 the function down, but ensures that nothing bad happens. This is set to
313 ``True`` by default.
312
- ``check`` boolean (default: ``True``); -- whether to check that input is
grhkm21346 days ago
Suggested change
- ``check`` boolean (default: ``True``); -- whether to check that input is
- ``check`` -- boolean (default: ``True``); whether to check that input is
Conversation is marked as resolved
Show resolved
src/sage/combinat/permutation.py
313 correct. Slows the function down, but ensures that nothing bad happens.
314 This is set to ``True`` by default.
315
316
- ``algorithm`` string (default: ``lex``); -- the algorithm used to generate
grhkm21346 days ago
Suggested change
- ``algorithm`` string (default: ``lex``); -- the algorithm used to generate
- ``algorithm`` -- string (default: ``lex``); the algorithm used to generate

Same below

Conversation is marked as resolved
Show resolved
src/sage/combinat/permutation.py
546619 # or is some integer missing ?
547620 if int(lst[-1]) != len(lst):
548 raise ValueError("The permutation has length "+str(len(lst)) +
621
raise ValueError("the permutation has length "+str(len(lst)) +
549622
" but its maximal element is " +
550
str(int(lst[-1]))+". Some element " +
551
"may be repeated, or an element is missing" +
552
", but there is something wrong with its length.")
623
str(int(lst[-1])) + ". Some element may be " +
624
"repeated, or an element is missing, but " +
grhkm21346 days ago👍 1

Using f-strings should be simpler. I think there's more issues with this error but maybe leave it for now, it's not too related to this PR

Conversation is marked as resolved
Show resolved
src/sage/combinat/permutation.py
538610 except TypeError:
539611 raise ValueError("the elements must be integer variables")
540612
if i < 1:
grhkm21346 days ago
sage: Permutation([3/2, 2, 3, 4])
[3/2, 2, 3, 4]

bug

grhkm21346 days ago👍 1

I guess it's not really related to this PR, in which case just open a new issue for it and solve it later (or leave it hanging for a few years)

Conversation is marked as resolved
Show resolved
src/sage/combinat/permutation.py
559632 raise ValueError("an element appears twice in the input")
560633 previous = i
561634
635
if algorithm == "sjt":
grhkm21346 days ago

Can you do a .lower somewhere before?

Conversation is marked as resolved
Show resolved
src/sage/combinat/permutation.py
871 False
872 sage: assert(len(s)) == factorial(len(l))
767873 """
874
if self.__sjt is not None:
grhkm21346 days ago

Can you set a flag/attribute say ._algorithm and check that instead? Checking __sjt seems a bit weird and might break easily, even though it's correct for now

Conversation is marked as resolved
Show resolved
src/sage/combinat/permutation.py
877 p, directions = self.__sjt.next()
878 if p is False:
879 return False
880
return Permutations()(p, algorithm='sjt', directions=directions)
grhkm21346 days ago

Seems to work for me:

Suggested change
return Permutations()(p, algorithm='sjt', directions=directions)
return Permutation(p, algorithm='sjt', directions=directions)
JosePisco346 days ago

Tbh, I don't know the double ()() syntax on calls in python so I just "copied" code there.
Are we sure this isn't changing something we don't know about ?

grhkm21344 days ago

It's not double ()() syntax. Permutations() is creating a Parent of all permutations, and the __call__ method on that tries to further convert the argument to the Element class of that parent class (afaik). So I think Permutation should be faster, but I'm not sure if anything breaks.

Leave it if you want, or try it and see any CI breaks :p

JosePisco343 days ago

I confirm it breaks the CI on my end.

grhkm21
grhkm21346 days ago

Also can you resolve the comments that are fixed, so i can see what to look

JosePisco
JosePisco346 days ago (edited 346 days ago)

Many thanks again @grhkm21 for reviewing the code.
Commit a44383f suggests changes that were discussed.

I've made SJT.next() method to return an SJT object, but then the Permutation class constructor takes an sjt=None parameter upon construction (we still need to pass on directions). I've closed some discussions but let some open so I don't unilaterally decide on changes.

grhkm21
grhkm21 requested changes on 2024-06-01
grhkm21344 days ago

Final style changes, hopefully non controversial ones. should be ok afterwards. thanks in advance

Conversation is marked as resolved
Show resolved
src/sage/combinat/SJT.py
71 sage: p.next()
72 [1, 4, 2, 3]
73
74
TESTS::
grhkm21344 days ago
Suggested change
TESTS::
TESTS::
Conversation is marked as resolved
Show resolved
src/sage/combinat/SJT.py
97
98 - ``l`` -- list; a list of ordered ``int``.
99
100
- ``directions`` -- list (default: ``None`` ); a list of directions for
grhkm21344 days ago
Suggested change
- ``directions`` -- list (default: ``None`` ); a list of directions for
- ``directions`` -- list (default: ``None``); a list of directions for
Conversation is marked as resolved
Show resolved
src/sage/combinat/SJT.py
164
165 def _get_perm(self):
166 r"""
167
Return the current permutation of ``self``.
grhkm21344 days ago

I don't understand this method. If _get_perm is the same as _list, plus both are hidden variables (_...), why do we need it? Just use ._list.

JosePisco343 days ago

No that's my bad, initially it was a hidden variable with __ prefix but your suggestions to align with permutation.py changed it but it stayed private in my mind.

Commit 1052244 should fix that

Conversation is marked as resolved
Show resolved
src/sage/combinat/SJT.py
173 Produce the next permutation of ``self`` following the
174 Steinhaus-Johnson-Trotter algorithm.
175
176
OUTPUT: a tuple of
177
178
- the list of the next permutation
179
180
- the list of associated directions
grhkm21344 days ago
Suggested change
OUTPUT: a tuple of
- the list of the next permutation
- the list of associated directions
OUTPUT: the list of the next permutation
Conversation is marked as resolved
Show resolved
src/sage/combinat/permutation.py
436477 """
437478 @staticmethod
438479 @rename_keyword(deprecation=35233, check_input='check')
439 def __classcall_private__(cls, l, check=True):
480
def __classcall_private__(cls, l, algorithm='lex', sjt=None,
481
check=True):
grhkm21344 days ago
Suggested change
def __classcall_private__(cls, l, algorithm='lex', sjt=None,
check=True):
def __classcall_private__(cls, l, algorithm='lex', sjt=None, check=True):
Conversation is marked as resolved
Show resolved
src/sage/combinat/permutation.py
867 sage: for _ in range(factorial(len(l))):
868 ....: s.add(p)
869 ....: p = p.next()
870
....:
grhkm21344 days ago
Suggested change
....:
Conversation is marked as resolved
Show resolved
src/sage/combinat/permutation.py
404 sage: p = Permutation([1, 2, 3], algorithm='sjt')
405 sage: for _ in range(6):
406 ....: p = p.next()
407
....:
grhkm21344 days ago
Suggested change
....:
JosePisco
JosePisco343 days ago

Ah thank you for catching these small style issues. Commit 1052244 meets the changes.

vbraun vbraun force-pushed the develop branch from eba5e198 to e5f42fac 342 days ago
JosePisco Steinhaus-Johnson-Trotter algorithm for permutations
9f4c0e3e
JosePisco Fixing doctests
86b7afb0
JosePisco Fixing edge case on empty list initialization
3e369514
JosePisco Removing typo in copyright
356704e3
JosePisco Better testing and better documentation
374799b1
JosePisco Added exhaustive examples and changed phrasings and formatting
6cd65d0a
JosePisco SJT class next() method now returns a new SJT object
81027200
JosePisco Fixed style on inputs in docstring
48564bc7
JosePisco Style correction and removed useless _get_perm() method
6ed2a795
JosePisco JosePisco force pushed from 1052244a to 6ed2a795 342 days ago
JosePisco Fixed unindent style error on __init__ docstring
f9d76cf9
JosePisco
JosePisco338 days ago

Last linting error has been fixed. If everybody agrees with the changes and the overall code suggestion, this PR is ready for merging on my side.

grhkm21
grhkm21337 days ago

Sorry for the delay

grhkm21
grhkm21 approved these changes on 2024-06-08
grhkm21337 days ago

Looks good to me! Feel free to open an issue for the TODOs e.g. implement .previous() or something

src/sage/combinat/SJT.py
148 else:
149 self._directions = directions
150
151
def __idx_largest_element_non_zero_direction(self, perm, directions):
grhkm21337 days ago

Usually internal methods are single underscores, but this is okay too

grhkm21
grhkm21 requested changes on 2024-06-08
src/sage/combinat/permutation.py
596 if self._algorithm != "lex" and self._algorithm != "sjt":
597 raise ValueError("unsupported algorithm %s; expected 'lex' or 'sjt'"
598 % self._algorithm)
599
grhkm21337 days ago
Suggested change

Sorry, please fix this (CI lint is failing)

JosePisco Trailing blank line
31395364
grhkm21
grhkm21 approved these changes on 2024-06-08
grhkm21337 days ago🎉 1

good

grhkm21 grhkm21 added s: positive review
vbraun vbraun merged 7f3080ff into develop 323 days ago
github-actions github-actions removed s: positive review
mkoeppe mkoeppe added this to the sage-10.4 milestone 308 days ago
bpavo
bpavo272 days ago

مرغ مرا مرطوب و نافه مشک بود
(مصرع) گر به صحن باغ گویی صحن بستان دیگرست

(مصرع) در هوای باغ و بستان باز ناید مرغ جان
(مصرع) مرغ جانم را در آن بستان و بستان دیگرست

(مصرع) از نسیم گل اگر صحن چمن گردد چو باغ
(مصرع) در مشام من ز بوی گل فراوان دیگرست

(مصرع) باغبان گوید به بستان در درآی ای باغبان
(مصرع) هر کجا باغست آنجا سرو و ریحان دیگرست

(مصرع) بر در و دیوار باغ از بهر چشم زخم گل
(مصرع) هر زمان از دور هر بلبل غزل خوان دیگرست

(مصرع) هر کسی را با گل و نرگس درین بستان و باغ
(مصرع) از لب و چشم بتان آب و گلستان دیگرست

(مصرع) نیست کس را در جهان کامی که آن باشد مراد
(مصرع) بر مراد دل چو داری کام دل آن دیگرست

(مصرع) تا ز بهر چشم زخم حادثات روزگار
(مصرع) در بساط آسمان خورشید رخشان دیگرست

(مصرع) تا همی از دور گردون و ز دور روزگار
(مصرع) در جهان پیر و در ایام برنان دیگرست

(مصرع) عمر تو پاینده باد و ملک تو پاینده باد
(مصرع) رای تو تابنده باد و عدل تو تابان دیگرست

(مصرع) تا که در قرآن بود اخبار و آیات کمال
(مصرع) ذات تو اندر جهان اخبار و آیات دیگرست

bpavo
bpavo272 days ago

ای که راه در به این ره
(مصرع) بر او بسته‌اند راه به منزل

(مصرع) این ره عالم است و بر وی فرض
(مصرع) این ره عالم است و بر وی فرض

(مصرع) ره در آن عالم ار توانی کرد
(مصرع) به از این ره برو توانی خورد

(مصرع) هر که را این ره از پی کاری است
(مصرع) در گرفتاریش گرفتاری است

(مصرع) هر که او پیش از آنکه درگذرد
(مصرع) نفس خود را به نفس باز خرد

(مصرع) این ره راه آدمی زادیست
(مصرع) نفس او آدمی ز بیدادیست

(مصرع) گر ز معنی شوی تو آدمزاد
(مصرع) پای بیرون نهی ز عرض فساد

(مصرع) ور ز صورت ره حقیقت و دین
(مصرع) بر تو تابد به علم حق چندین

(مصرع) علم او از کتاب یزدانست
(مصرع) زانکه او هم فرشته هم جانست

(مصرع) گر تو زین عالم ای فرشته خصال
(مصرع) روی دل بر مثال آب زلال

(مصرع) از پی آن همی رود تا حشر
(مصرع) که شود کار آخرت تو درسر

(مصرع) از پی این جهان و آن جهان تو
(مصرع) که یکی ذره نیست جان تو را

(مصرع) جان تو تشنه معانی تست
(مصرع) جان تو خازن معانی تست

(مصرع) روح تو طوطی شکر شکنست
(مصرع) زانکه روح تو مرغ

bpavo
bpavo272 days ago

اولدوز

(مصرع) ز دست عشق بس مدهوش گشتم
(مصرع) همه در جست و جوی او بکشتم

(مصرع) چو بگذشت ای عجب یک روز یکماه
(مصرع) که تا بر من نماند آن ماه دلخواه

(مصرع) چو با خود آمدم زان جایگاه باز
(مصرع) بدیدم هفت گردون را بیک راه

bpavo
bpavo272 days ago

پاره داره پاره‌ای اوست

(مصرع) که تا زار از تو بیزار است هرگه
(مصرع) دلم از کار تو بیزار است هرگه

(مصرع) بگو تا کیست در عشقت چنین زار
(مصرع) چو تو مست فتاده اینچنین خوار

(مصرع) که در عشقت دل و جان بر میان بست
(مصرع) چنین بیچاره و حیران و مفلست

(مصرع) دل و جان و جهان و عقل و دین رفت
(مصرع) ز دست تو چه گویم اینچنین رفت

(مصرع) اگر جانم رود بی روی جانان
(مصرع) نخواهم هیچ چیزی جز رخ آن

(مصرع) چه میگویم چو تو هستی همیشه
(مصرع) توئی از جان و دل هستی همیشه

(مصرع) تو داری در همه عالم نشانی
(مصرع) که در جانم توئی راز نهانی

(مصرع) به امیدی که باشد بر سر من
(مصرع) که تا پیدا شود کل جوهر من

(مصرع) به امیدی که از من باز مانی
(مصرع) یقین دانم که صاحب راز مانی

(مصرع) به امیدی که آئی سوی من باز
(مصرع) همه کارت بود با من دمساز

(مصرع) ترا از من بخواهم جست آخر
(مصرع) مر این اسرار خواهم گفت ظاهر

(مصرع) ترا من خواهم و دیدار تو دوست
(مصرع) حقیقت مغز خواهم بود و هم پوست

(مصرع) چو تو داری حقیقت بود اینجا
(مصرع) حقیقت بیشکی معبود اینجا

(مصرع) حقیقت چون تو دارم در همه

bpavo
bpavo272 days ago

chrome-error://chromewebdata/

bpavo
bpavo272 days ago

کلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیداییکلیدواژه‌های مرا

(مصرع) چو بی تو نیست به پایان رسد سخن به چه رو
(مصرع) هزار بوسه زنم بر لب اسیر وفا

(مصرع) اگر چه شعر در آبست، از چه روی
(مصرع) به چشم خویش فرو می‌برم سرشک جدا

(مصرع) نگاه کن که چه سان می رود به هر چشمی
(مصرع) به هر چه می‌نگرم ، در تو نیست یکتایی

(مصرع) نه آشنایی من ، بی تو تا به حال افتاد
(مصرع) که بی تو زیستنم در فراق شیدایی

bpavo
bpavo272 days ago

ای که راه در به این ره
(مصرع) بر او بسته‌اند راه به منزل

(مصرع) این ره عالم است و بر وی فرض
(مصرع) این ره عالم است و بر وی فرض

(مصرع) ره در آن عالم ار توانی کرد
(مصرع) به از این ره برو توانی خورد

(مصرع) هر که را این ره از پی کاری است
(مصرع) در گرفتاریش گرفتاری است

(مصرع) هر که او پیش از آنکه درگذرد
(مصرع) نفس خود را به نفس باز خرد

(مصرع) این ره راه آدمی زادیست
(مصرع) نفس او آدمی ز بیدادیست

(مصرع) گر ز معنی شوی تو آدمزاد
(مصرع) پای بیرون نهی ز عرض فساد

(مصرع) ور ز صورت ره حقیقت و دین
(مصرع) بر تو تابد به علم حق چندین

(مصرع) علم او از کتاب یزدانست
(مصرع) زانکه او هم فرشته هم جانست

(مصرع) گر تو زین عالم ای فرشته خصال
(مصرع) روی دل بر مثال آب زلال

(مصرع) از پی آن همی رود تا حشر
(مصرع) که شود کار آخرت تو درسر

(مصرع) از پی این جهان و آن جهان تو
(مصرع) که یکی ذره نیست جان تو را

(مصرع) جان تو تشنه معانی تست
(مصرع) جان تو خازن معانی تست

(مصرع) روح تو طوطی شکر شکنست
(مصرع) زانکه روح تو مرغای که راه در به این ره
(مصرع) بر او بسته‌اند راه به منزل

(مصرع) این ره عالم است و بر وی فرض
(مصرع) این ره عالم است و بر وی فرض

(مصرع) ره در آن عالم ار توانی کرد
(مصرع) به از این ره برو توانی خورد

(مصرع) هر که را این ره از پی کاری است
(مصرع) در گرفتاریش گرفتاری است

(مصرع) هر که او پیش از آنکه درگذرد
(مصرع) نفس خود را به نفس باز خرد

(مصرع) این ره راه آدمی زادیست
(مصرع) نفس او آدمی ز بیدادیست

(مصرع) گر ز معنی شوی تو آدمزاد
(مصرع) پای بیرون نهی ز عرض فساد

(مصرع) ور ز صورت ره حقیقت و دین
(مصرع) بر تو تابد به علم حق چندین

(مصرع) علم او از کتاب یزدانست
(مصرع) زانکه او هم فرشته هم جانست

(مصرع) گر تو زین عالم ای فرشته خصال
(مصرع) روی دل بر مثال آب زلال

(مصرع) از پی آن همی رود تا حشر
(مصرع) که شود کار آخرت تو درسر

(مصرع) از پی این جهان و آن جهان تو
(مصرع) که یکی ذره نیست جان تو را

(مصرع) جان تو تشنه معانی تست
(مصرع) جان تو خازن معانی تست

(مصرع) روح تو طوطی شکر شکنست
(مصرع) زانکه روح تو مرغای که راه در به این ره
(مصرع) بر او بسته‌اند راه به منزل

(مصرع) این ره عالم است و بر وی فرض
(مصرع) این ره عالم است و بر وی فرض

(مصرع) ره در آن عالم ار توانی کرد
(مصرع) به از این ره برو توانی خورد

(مصرع) هر که را این ره از پی کاری است
(مصرع) در گرفتاریش گرفتاری است

(مصرع) هر که او پیش از آنکه درگذرد
(مصرع) نفس خود را به نفس باز خرد

(مصرع) این ره راه آدمی زادیست
(مصرع) نفس او آدمی ز بیدادیست

(مصرع) گر ز معنی شوی تو آدمزاد
(مصرع) پای بیرون نهی ز عرض فساد

(مصرع) ور ز صورت ره حقیقت و دین
(مصرع) بر تو تابد به علم حق چندین

(مصرع) علم او از کتاب یزدانست
(مصرع) زانکه او هم فرشته هم جانست

(مصرع) گر تو زین عالم ای فرشته خصال
(مصرع) روی دل بر مثال آب زلال

(مصرع) از پی آن همی رود تا حشر
(مصرع) که شود کار آخرت تو درسر

(مصرع) از پی این جهان و آن جهان تو
(مصرع) که یکی ذره نیست جان تو را

(مصرع) جان تو تشنه معانی تست
(مصرع) جان تو خازن معانی تست

(مصرع) روح تو طوطی شکر شکنست
(مصرع) زانکه روح تو مرغای که راه در به این ره
(مصرع) بر او بسته‌اند راه به منزل

(مصرع) این ره عالم است و بر وی فرض
(مصرع) این ره عالم است و بر وی فرض

(مصرع) ره در آن عالم ار توانی کرد
(مصرع) به از این ره برو توانی خورد

(مصرع) هر که را این ره از پی کاری است
(مصرع) در گرفتاریش گرفتاری است

(مصرع) هر که او پیش از آنکه درگذرد
(مصرع) نفس خود را به نفس باز خرد

(مصرع) این ره راه آدمی زادیست
(مصرع) نفس او آدمی ز بیدادیست

(مصرع) گر ز معنی شوی تو آدمزاد
(مصرع) پای بیرون نهی ز عرض فساد

(مصرع) ور ز صورت ره حقیقت و دین
(مصرع) بر تو تابد به علم حق چندین

(مصرع) علم او از کتاب یزدانست
(مصرع) زانکه او هم فرشته هم جانست

(مصرع) گر تو زین عالم ای فرشته خصال
(مصرع) روی دل بر مثال آب زلال

(مصرع) از پی آن همی رود تا حشر
(مصرع) که شود کار آخرت تو درسر

(مصرع) از پی این جهان و آن جهان تو
(مصرع) که یکی ذره نیست جان تو را

(مصرع) جان تو تشنه معانی تست
(مصرع) جان تو خازن معانی تست

(مصرع) روح تو طوطی شکر شکنست
(مصرع) زانکه روح تو مرغای که راه در به این ره
(مصرع) بر او بسته‌اند راه به منزل

(مصرع) این ره عالم است و بر وی فرض
(مصرع) این ره عالم است و بر وی فرض

(مصرع) ره در آن عالم ار توانی کرد
(مصرع) به از این ره برو توانی خورد

(مصرع) هر که را این ره از پی کاری است
(مصرع) در گرفتاریش گرفتاری است

(مصرع) هر که او پیش از آنکه درگذرد
(مصرع) نفس خود را به نفس باز خرد

(مصرع) این ره راه آدمی زادیست
(مصرع) نفس او آدمی ز بیدادیست

(مصرع) گر ز معنی شوی تو آدمزاد
(مصرع) پای بیرون نهی ز عرض فساد

(مصرع) ور ز صورت ره حقیقت و دین
(مصرع) بر تو تابد به علم حق چندین

(مصرع) علم او از کتاب یزدانست
(مصرع) زانکه او هم فرشته هم جانست

(مصرع) گر تو زین عالم ای فرشته خصال
(مصرع) روی دل بر مثال آب زلال

(مصرع) از پی آن همی رود تا حشر
(مصرع) که شود کار آخرت تو درسر

(مصرع) از پی این جهان و آن جهان تو
(مصرع) که یکی ذره نیست جان تو را

(مصرع) جان تو تشنه معانی تست
(مصرع) جان تو خازن معانی تست

(مصرع) روح تو طوطی شکر شکنست
(مصرع) زانکه روح تو مرغای که راه در به این ره
(مصرع) بر او بسته‌اند راه به منزل

(مصرع) این ره عالم است و بر وی فرض
(مصرع) این ره عالم است و بر وی فرض

(مصرع) ره در آن عالم ار توانی کرد
(مصرع) به از این ره برو توانی خورد

(مصرع) هر که را این ره از پی کاری است
(مصرع) در گرفتاریش گرفتاری است

(مصرع) هر که او پیش از آنکه درگذرد
(مصرع) نفس خود را به نفس باز خرد

(مصرع) این ره راه آدمی زادیست
(مصرع) نفس او آدمی ز بیدادیست

(مصرع) گر ز معنی شوی تو آدمزاد
(مصرع) پای بیرون نهی ز عرض فساد

(مصرع) ور ز صورت ره حقیقت و دین
(مصرع) بر تو تابد به علم حق چندین

(مصرع) علم او از کتاب یزدانست
(مصرع) زانکه او هم فرشته هم جانست

(مصرع) گر تو زین عالم ای فرشته خصال
(مصرع) روی دل بر مثال آب زلال

(مصرع) از پی آن همی رود تا حشر
(مصرع) که شود کار آخرت تو درسر

(مصرع) از پی این جهان و آن جهان تو
(مصرع) که یکی ذره نیست جان تو را

(مصرع) جان تو تشنه معانی تست
(مصرع) جان تو خازن معانی تست

(مصرع) روح تو طوطی شکر شکنست
(مصرع) زانکه روح تو مرغای که راه در به این ره
(مصرع) بر او بسته‌اند راه به منزل

(مصرع) این ره عالم است و بر وی فرض
(مصرع) این ره عالم است و بر وی فرض

(مصرع) ره در آن عالم ار توانی کرد
(مصرع) به از این ره برو توانی خورد

(مصرع) هر که را این ره از پی کاری است
(مصرع) در گرفتاریش گرفتاری است

(مصرع) هر که او پیش از آنکه درگذرد
(مصرع) نفس خود را به نفس باز خرد

(مصرع) این ره راه آدمی زادیست
(مصرع) نفس او آدمی ز بیدادیست

(مصرع) گر ز معنی شوی تو آدمزاد
(مصرع) پای بیرون نهی ز عرض فساد

(مصرع) ور ز صورت ره حقیقت و دین
(مصرع) بر تو تابد به علم حق چندین

(مصرع) علم او از کتاب یزدانست
(مصرع) زانکه او هم فرشته هم جانست

(مصرع) گر تو زین عالم ای فرشته خصال
(مصرع) روی دل بر مثال آب زلال

(مصرع) از پی آن همی رود تا حشر
(مصرع) که شود کار آخرت تو درسر

(مصرع) از پی این جهان و آن جهان تو
(مصرع) که یکی ذره نیست جان تو را

(مصرع) جان تو تشنه معانی تست
(مصرع) جان تو خازن معانی تست

(مصرع) روح تو طوطی شکر شکنست
(مصرع) زانکه روح تو مرغای که راه در به این ره
(مصرع) بر او بسته‌اند راه به منزل

(مصرع) این ره عالم است و بر وی فرض
(مصرع) این ره عالم است و بر وی فرض

(مصرع) ره در آن عالم ار توانی کرد
(مصرع) به از این ره برو توانی خورد

(مصرع) هر که را این ره از پی کاری است
(مصرع) در گرفتاریش گرفتاری است

(مصرع) هر که او پیش از آنکه درگذرد
(مصرع) نفس خود را به نفس باز خرد

(مصرع) این ره راه آدمی زادیست
(مصرع) نفس او آدمی ز بیدادیست

(مصرع) گر ز معنی شوی تو آدمزاد
(مصرع) پای بیرون نهی ز عرض فساد

(مصرع) ور ز صورت ره حقیقت و دین
(مصرع) بر تو تابد به علم حق چندین

(مصرع) علم او از کتاب یزدانست
(مصرع) زانکه او هم فرشته هم جانست

(مصرع) گر تو زین عالم ای فرشته خصال
(مصرع) روی دل بر مثال آب زلال

(مصرع) از پی آن همی رود تا حشر
(مصرع) که شود کار آخرت تو درسر

(مصرع) از پی این جهان و آن جهان تو
(مصرع) که یکی ذره نیست جان تو را

(مصرع) جان تو تشنه معانی تست
(مصرع) جان تو خازن معانی تست

(مصرع) روح تو طوطی شکر شکنست
(مصرع) زانکه روح تو مرغ

Login to write a write a comment.

Login via GitHub

Reviewers
Assignees
No one assigned
Labels
Milestone