Chapterبەش 4 · Lectureوانە 4.3

Logic Symbols and Boolean Algebraهێماکانی لۆجیک و جەبری بوول

Read and say the signs of logic in every style books use: statements p and q; NOT as ¬\lnot, ∼\sim, a prime or a bar; AND ∧\land, OR ∨\lor and XOR ⊕\oplus; the arrows →\to, ⇒\Rightarrow, ↔\leftrightarrow and   ⟺  \iff; the step signs of worked solutions; the quantifiers ∀\forall and ∃\exists; then Boolean algebra, where ABAB means AND and 1+1=11 + 1 = 1, the gate signs & and ≥1, and the same ideas in Python, C, Java, PHP, MATLAB and SQL.

لۆجیک بە هەموو ئەو شێوانەی کتێبەکان بەکاریان دەهێنن بخوێنەوە و بیڵێ: p و q؛ NOT بە ¬\lnot، ∼\sim، پرایم یان هێڵ؛ AND ∧\land، OR ∨\lor و XOR ⊕\oplus؛ تیرەکانی →\to، ⇒\Rightarrow، ↔\leftrightarrow و   ⟺  \iff؛ نیشانەکانی هەنگاو لە شیکارە کارکراوەکاندا؛ ∀\forall و ∃\exists؛ پاشان ، کە تێیدا ABAB واتە AND و 1+1=11 + 1 = 1، نیشانەکانی & و ≥1، هەروەها هەمان بیرۆکەکان لە Python، C، Java، PHP، MATLAB و SQLـدا.

15 min read17 خولەک خوێندنەوە · 13 stepsهەنگاو

What you will learnچی فێر دەبیت

  • Read statements p and q and the truth values T and F, 1 and 0.
  • Recognise NOT, AND and OR in every common notation (¬\lnot ∼\sim ′\prime bar; ∧\land &\& ⋅\cdot; ∨\lor ++ |) and say them in English and Kurdish.
  • Read XOR, →\to, ⇒\Rightarrow, ↔\leftrightarrow and   ⟺  \iff, and use the truth table of an implication.
  • Read the step signs ⇒\Rightarrow and   ⟺  \iff in worked solutions, and ∴\therefore, ⊢\vdash, ⊨\models and ■\blacksquare.
  • Read ∀\forall, ∃\exists, ∃!\exists! and ∄\nexists, and deny a “for all” statement correctly.
  • Read Boolean algebra (ABAB, A+BA + B, A‾\overline{A}), explain why 1+1=11 + 1 = 1 there, and match the logic signs with code operators.
  • p و q و نرخەکانی ڕاستیی T و F، 1 و 0 بخوێنیتەوە.
  • NOT، AND و OR بە هەموو شێوە باوەکان بناسیتەوە (¬\lnot ∼\sim ′\prime هێڵ؛ ∧\land &\& ⋅\cdot؛ ∨\lor ++ |) و بە ئینگلیزی و کوردی بیانڵێیت.
  • XOR، →\to، ⇒\Rightarrow، ↔\leftrightarrow و   ⟺  \iff بخوێنیتەوە و بەکار بهێنیت.
  • نیشانەکانی هەنگاوی ⇒\Rightarrow و   ⟺  \iff لە شیکارە کارکراوەکاندا بخوێنیتەوە، هەروەها ∴\therefore، ⊢\vdash، ⊨\models و ■\blacksquare.
  • ∀\forall، ∃\exists، ∃!\exists! و ∄\nexists بخوێنیتەوە و ڕستەیەکی «بۆ هەموو» بە دروستی ڕەت بکەیتەوە.
  • بخوێنیتەوە (ABAB، A+BA + B، A‾\overline{A})، ڕوون بکەیتەوە بۆچی لەوێ 1+1=11 + 1 = 1ـە و لۆجیک لەگەڵ کۆد بەراورد بکەیت.

Statements: p, q, true and falseگوزارەکان: p و q، ڕاست و هەڵە

Logic works with statements, also called propositions: sentences that are either true or false. Books name them with small letters, usually p, q and r: p = “Erbil is in Kurdistan” is true, q = 7<47 < 4 is false. A question or an order is not a statement, and neither is x>3x > 3 while x is unknown. The two truth values are written T and F, or 1 and 0 in logic design and in code; some books write ⊤\top and ⊥\bot (Propositions and symbols).

لۆجیک لەگەڵ کار دەکات: ڕستەیەک کە یان ڕاستە یان هەڵە. کتێبەکان بە پیتی بچووک ناویان دەنێن، بە زۆری pp، qq و rr: p = «هەولێر لە کوردستانە» ڕاستە، q = 7<47 < 4 هەڵەیە. پرسیار و فەرمان نین، هەروەها x>3x > 3ـیش نییە مادام x نەزانراوە. دوو نرخی ڕاستی بە T و F دەنووسرێن، یان بە 1 و 0 لە دیزاینی و لە کۆددا؛ هەندێک کتێب ⊤\top و ⊥\bot دەنووسن (گوزارەکان و هێماکان).

Five cards. 2 + 3 = 5: a statement, true, T. Erbil is in Kurdistan: a statement, true, T. 7 < 4: a statement, false, F. Close the door!: not a statement, an order. x > 3: not a statement, x is unknown. Below: true is T = 1 = ⊤, false is F = 0 = ⊥.پێنج کارت. 2 + 3 = 5: گوزارە، ڕاستە، T. هەولێر لە کوردستانە: گوزارە، ڕاستە، T. 7 < 4: گوزارە، هەڵەیە، F. دەرگاکە دابخە!: گوزارە نییە، فەرمانە. x > 3: گوزارە نییە، x نەزانراوە. لە خوارەوە: ڕاست بریتییە لە T = 1 = ⊤، هەڵە بریتییە لە F = 0 = ⊥.
A statement is true or false: never both, never neither. یان ڕاستە یان هەڵە: نە هەردووکیان و نە هیچیان.CêIT

NOT: five ways to write itNOT: پێنج شێوەی نووسین

The negation of p is true when p is false and false when p is true. Books write it ¬p\lnot p (the AI course and most logic books), ∼p\sim p (OpenStax and older books), p′p^{\prime} or p‾\overline{p} (logic design, where A‾\overline{A} is NOT A), and !p or not p in code. Read every one “not p”; in Kurdish نا p or وا نییە کە p. Two NOTs cancel: ¬¬p=p\lnot\lnot p = p. The tilde has other jobs too (∼\sim: one sign, four jobs).

p ڕاستە کاتێک p هەڵە بێت و هەڵەیە کاتێک p ڕاست بێت. کتێبەکان بەم شێوانە دەینووسن: ¬p\lnot p (کۆرسی و زۆربەی کتێبەکانی لۆجیک)، ∼p\sim p (OpenStax و کتێبی کۆنتر)، p′p^{\prime} یان p‾\overline{p} (دیزاینی ، کە تێیدا A‾\overline{A} واتە NOT A)، هەروەها !p یان not p لە کۆددا. هەموویان «نا p» یان «وا نییە کە p» دەخوێنرێنەوە. دوو NOT یەکتر لادەبەن: ¬¬p=p\lnot\lnot p = p. تیلدا کاری تریشی هەیە (∼\sim: یەک نیشانە، چوار کار).

Five cards for NOT: ¬p, logic books and AI; ~p, OpenStax and older books; p′, logic design; p with a bar over it, logic design; !p, code: !p and not p. All five are read “not p”. A truth table: when p is T, ¬p is F; when p is F, ¬p is T. And ¬¬p = p: two NOTs cancel.پێنج کارت بۆ NOT: ¬p، کتێبی لۆجیک و ژیریی دەستکرد؛ ~p، OpenStax و کتێبی کۆن؛ p′، دیزاینی لۆجیکی دیجیتاڵ؛ p بە هێڵێک لەسەریەوە، دیزاینی لۆجیکی دیجیتاڵ؛ !p، کۆد: !p و not p. هەر پێنجیان «نا p» دەخوێنرێنەوە. خشتەی ڕاستییەک: کاتێک p بریتییە لە T، ¬p بریتییە لە F؛ کاتێک p بریتییە لە F، ¬p بریتییە لە T. هەروەها ¬¬p = p: دوو NOT یەکتر لادەبەن.
One idea, five spellings, all read “not p”.یەک بیرۆکە، پێنج شێوەی نووسین، هەموویان «نا p» دەخوێنرێنەوە.CêIT

A long bar covers a whole group: A+B‾\overline{A + B} is NOT (A OR B), which is not the same as A‾+B‾\overline{A} + \overline{B} (A bar over a whole group). You may meet a table header printed A−A^{-} for NOT A; the usual forms are A‾\overline{A} and A′A^{\prime} (The NOT gate).

هێڵێکی درێژ گرووپێکی تەواو دادەپۆشێت: A+B‾\overline{A + B} واتە ⁦NOT (A OR B)⁩، کە هەمان A‾+B‾\overline{A} + \overline{B} نییە (هێڵێک بەسەر گرووپێکی تەواودا). لەوانەیە سەردێڕی خشتەیەک ببینیت کە A−A^{-} بۆ NOT A چاپ کردووە؛ شێوە باوەکان A‾\overline{A} و A′A^{\prime}ـن (گەیتی NOT).

AND and OR: ∧\land, ⋅\cdot, ∨\lor and ++AND و OR: ∧\land، ⋅\cdot، ∨\lor و ++

AND, OR and NOT are the basic logical operators. p∧qp \land q, “p and q”, is true only when both are true; books also write p & qp \,\&\, q, p⋅qp \cdot q or simply pqpq. p∨qp \lor q, “p or q”, is true when at least one is true, including when both are: the “or” of logic always allows both. Other spellings are p+qp + q in logic design and p || q or p or q in code. In Kurdish: p و q and p یان q (The five connectives).

AND، OR و NOT سێ بنەڕەتین. p∧qp \land q، «p و q»، تەنیا کاتێک ڕاستە کە هەردووکیان ڕاست بن؛ کتێبەکان p & qp \,\&\, q، p⋅qp \cdot q یان بە سادەیی pqpqـیش دەنووسن. p∨qp \lor q، «p یان q»، ڕاستە کاتێک لانیکەم یەکێکیان ڕاست بێت، لەوانە کاتێک هەردووکیان ڕاستن: «یان»ـی لۆجیک هەمیشە ڕێگە بە هەردووکیان دەدات. شێوەکانی تری نووسینی p+qp + qـە لە دیزاینی و p || q یان p or q لە کۆددا (پێنج بەستەرەکە).

Three cards. ∧, AND, matches ∩, intersection: a Venn diagram with only the overlap shaded, x ∈ A ∧ x ∈ B. ∨, OR, matches ∪, union: both circles shaded, x ∈ A ∨ x ∈ B. ¬, NOT, matches Aᶜ, the complement: everything outside A shaded, ¬(x ∈ A).سێ کارت. ∧، AND، هاوتای ∩ـە، یەکتربڕین: هێڵکاریی ڤێنێک کە تەنیا بەشە هاوبەشەکەی ڕەنگکراوە، x ∈ A ∧ x ∈ B. ∨، OR، هاوتای ∪ـە، یەکگرتن: هەردوو بازنەکە ڕەنگکراون، x ∈ A ∨ x ∈ B. ¬، NOT، هاوتای Aᶜـە، تەواوکەر: هەموو شتێکی دەرەوەی A ڕەنگکراوە، ¬(x ∈ A).
Logic and sets use twin signs.لۆجیک و نیشانەی جمک بەکار دەهێنن.CêIT

A memory trick: ∧\land looks like the ∩\cap of intersection and ∨\lor like the ∪\cup of union. It is no accident: “x is in A∩BA \cap B” means x∈A∧x∈Bx \in A \land x \in B, and NOT matches the complement (The same laws in sets and in logic).

فێڵێک بۆ لەبیرکردن: ∧\land لە ∩\capـی دەچێت و ∨\lor لە ∪\cupـی . ئەمە ڕێکەوت نییە: «x لە A∩BA \cap Bـدایە» واتە x∈A∧x∈Bx \in A \land x \in B. NOTـیش هاوتای (هەمان یاساکان لە کۆمەڵەکان و لە لۆجیکدا).

XOR: one or the other, not bothXOR: یان ئەم یان ئەو، نەک هەردووکیان

Everyday “or” sometimes means “only one”: “tea or coffee with the meal”. Logic calls that exclusive or, XOR: p⊕qp \oplus q is true when exactly one of p and q is true. Books also write p⊻qp \veebar q, rectangular gate symbols carry the mark =1, and for True and False Python’s p != q (or p ^ q) does the job. Its partner XNOR, A⊕B‾\overline{A \oplus B} or A⊙BA \odot B, is true when both are the same (The XOR gate). In Kurdish: یان p یان q، نەک هەردووکیان.

«یان»ـی ڕۆژانە هەندێک جار واتای «تەنیا یەکێکیان» دەدات: «چا یان قاوە لەگەڵ ژەمەکە». لۆجیک بەمە دەڵێت «یان»ـی تایبەت (exclusive or)، واتە XOR: p⊕qp \oplus q ڕاستە کاتێک تەنیا یەکێک لە p و q ڕاست بێت. کتێبەکان p⊻qp \veebar qـیش دەنووسن، هێما لاکێشەییەکانی نیشانەی =1 هەڵدەگرن و بۆ True و False لە p != q (یان p ^ q) ئەو کارە دەکات. هاوڕێکەی XNOR، A⊕B‾\overline{A \oplus B} یان A⊙BA \odot B، ڕاستە کاتێک هەردووکیان وەک یەک بن (گەیتی XOR). بە کوردی: «یان p یان q، نەک هەردووکیان».

Two panels. “Bring a pen or a pencil.” Both is fine: p ∨ q, OR, with the truth table 0, 1, 1, 1. “Tea or coffee with the meal.” Only one of them: p ⊕ q, XOR, with the truth table 0, 1, 1, 0. The 1 1 row, highlighted, tells them apart.دوو بەش. «پێنووس یان قەڵەمڕەساس بهێنە.» هەردووکیشی دروستە: p ∨ q، OR، بە خشتەی ڕاستیی 0، 1، 1، 1. «چا یان قاوە لەگەڵ ژەمەکە.» تەنیا یەکێکیان: p ⊕ q، XOR، بە خشتەی ڕاستیی 0، 1، 1، 0. ڕیزی 1 1، کە ڕەنگکراوە، جیایان دەکاتەوە.
OR allows both; XOR allows exactly one.OR ڕێگە بە هەردووکیان دەدات؛ XOR تەنیا بە یەکێکیان.CêIT

→\to and ⇒\Rightarrow: if … then→\to و ⇒\Rightarrow: ئەگەر … ئەوا

p→qp \to q is the implication “if p then q”, also read “p implies q”; in Kurdish ئەگەر p ئەوا q. Many books use the double arrow p⇒qp \Rightarrow q, and older ones write p⊃qp \supset q, which has nothing to do with supersets here. Watch the animation fill the truth table: the implication is false only when p is true and q is false. When p is false, nothing was promised, so it counts as true (Implication).

p→qp \to q : «ئەگەر p ئەوا q»، کە «pp، qq دەگەیەنێت»ـیش دەخوێنرێتەوە. زۆر کتێب تیری دووهێڵی p⇒qp \Rightarrow q بەکار دەهێنن و کتێبە کۆنەکان p⊃qp \supset q دەنووسن، کە لێرەدا هیچ پەیوەندیی بە نییە. سەیری ئەنیمەیشنەکە بکە کە پڕ دەکاتەوە: تەنیا کاتێک هەڵەیە کە p ڕاست بێت و q هەڵە بێت. کاتێک p هەڵە بێت، هیچ بەڵێنێک نەدراوە، بۆیە بە ڕاست دادەنرێت (گوزارەی مەرجی).

Animation of the truth table of p → q, with p: you pass the exam and q: you get a gift. Row by row: T and T give T, the promise is kept; T and F give F, the promise is broken, highlighted; F and T give T, not broken, a gift anyway; F and F give T, not broken, nothing was promised. Last frame: p → q is false only when p is true and q is false.
Animation of the truth table of p → q, with p: you pass the exam and q: you get a gift. Row by row: T and T give T, the promise is kept; T and F give F, the promise is broken, highlighted; F and T give T, not broken, a gift anyway; F and F give T, not broken, nothing was promised. Last frame: p → q is false only when p is true and q is false.
False in one row only: p true, q false.تەنیا لە یەک ڕیزدا هەڵەیە: p ڕاست، q هەڵە.CêIT

The arrow points one way. “If it rains, the street is wet” does not say “if the street is wet, it rained”: q→pq \to p, the converse, is a different statement. Inside formulas the arrow stays →\to; in Kurdish sentences CêIT writes «←» for “then” (One arrow, four jobs).

تیرەکە تەنیا یەک ئاڕاستەی هەیە. «ئەگەر باران ببارێت، شەقامەکە تەڕ دەبێت» نالێت «ئەگەر شەقامەکە تەڕ بێت، باران باریوە»: q→pq \to p، کە پێچەوانەکەیەتی، ڕستەیەکی ترە. لە ناو تیرەکە →\to دەمێنێتەوە؛ لە ڕستەی کوردیدا CêIT بۆ «ئەوا» «←» دەنووسێت (یەک تیر، چوار کار).

↔\leftrightarrow, ⇔\Leftrightarrow and   ⟺  \iff: if and only if↔\leftrightarrow، ⇔\Leftrightarrow و   ⟺  \iff: ئەگەر و تەنیا ئەگەر

p↔qp \leftrightarrow q, the biconditional, says the rule works both ways: “p if and only if q”, shortened to “p iff q”; in Kurdish p ئەگەر و تەنیا ئەگەر q. It is true when p and q have the same truth value, so it means (p→q)∧(q→p)(p \to q) \land (q \to p). Books write ↔\leftrightarrow, ⇔\Leftrightarrow, the long   ⟺  \iff or ≡\equiv (Biconditional).

p↔qp \leftrightarrow q، واتە ، دەڵێت یاساکە بە هەردوو ئاڕاستەدا کار دەکات: «p ئەگەر و تەنیا ئەگەر q»، بە کورتی «p iff q». ڕاستە کاتێک p و q هەمان نرخی ڕاستییان هەبێت، بۆیە واتای (p→q)∧(q→p)(p \to q) \land (q \to p) دەدات. کتێبەکان ↔\leftrightarrow، ⇔\Leftrightarrow،   ⟺  \iffـی درێژ یان ≡\equiv دەنووسن (گوزارەی دوومەرجی).

Top: p → q, if p then q, and q → p, and if q then p; together they equal p ↔ q, “p if and only if q”; also written ⇔, ⟺, ≡ and “p iff q”. Bottom, an example that is true both ways: a triangle has three equal sides ⟺ it has three equal angles.سەرەوە: p → q («ئەگەر p ئەوا q») و q → p («هەروەها ئەگەر q ئەوا p»)؛ پێکەوە یەکسانن بە p ↔ q، «p ئەگەر و تەنیا ئەگەر q»؛ بەم شێوانەش دەنووسرێت: ⇔، ⟺، ≡ و «p iff q». خوارەوە، نموونەیەک کە بە هەردوو ئاڕاستە ڕاستە: سێگۆشەیەک سێ لای یەکسانی هەیە ⟺ سێ گۆشەی یەکسانی هەیە.
Two one-way arrows make a two-way arrow.دوو تیری یەک ئاڕاستە تیرێکی دوو ئاڕاستە دروست دەکەن.CêIT

Definitions are full of “iff”: a function is one-to-one iff different inputs always give different outputs (One-to-one functions). An “iff” is a two-way street; an “if” is one way.

پێناسەکان پڕن لە «iff»: یەک بۆ یەکە ئەگەر و تەنیا ئەگەر جیاواز هەمیشە جیاواز بدات (نەخشە یەک بۆ یەکەکان). «ئەگەر و تەنیا ئەگەر» شەقامێکی دوو ئاڕاستەیە؛ «ئەگەر» یەک ئاڕاستەیە.

Signs between the steps of a solutionهێماکانی نێوان هەنگاوەکانی شیکارێک

Worked solutions join their lines with arrows. ⇒\Rightarrow means “so” or “therefore”: the next line follows from this one.   ⟺  \iff means “is the same as”: each line follows from the other, so no answer is lost or added. So 2x+1=7  ⟺  2x=6  ⟺  x=32x + 1 = 7 \iff 2x = 6 \iff x = 3, but x=3⇒x2=9x = 3 \Rightarrow x^2 = 9 works one way only, because x2=9x^2 = 9 also allows x=−3x = -3. Do not write “or” where you mean ⇒\Rightarrow: “a>ba > b or a+c>b+ca + c > b + c” says something quite different from a>b⇒a+c>b+ca > b \Rightarrow a + c > b + c (Adding the same number to both sides).

شیکارە کارکراوەکان دێڕەکانیان بە تیر پێکەوە دەبەستن. ⇒\Rightarrow واتە «کەواتە»: دێڕی دواتر لەم دێڕەوە دێت.   ⟺  \iff واتە «هەمان شتە»: هەر دێڕێک لە ئەوی ترەوە دێت، بۆیە هیچ وەڵامێک ون نابێت و زیادیش نابێت. کەواتە 2x+1=7  ⟺  2x=6  ⟺  x=32x + 1 = 7 \iff 2x = 6 \iff x = 3، بەڵام x=3⇒x2=9x = 3 \Rightarrow x^2 = 9 تەنیا بە یەک ئاڕاستە کار دەکات، چونکە x2=9x^2 = 9 ڕێگە بە x=−3x = -3ـیش دەدات. لە جیاتی ⇒\Rightarrow «یان» مەنووسە: «a>ba > b یان a+c>b+ca + c > b + c» شتێکی زۆر جیاواز لە a>b⇒a+c>b+ca > b \Rightarrow a + c > b + c دەڵێت (زیادکردنی هەمان ژمارە بۆ هەردوو لا).

Left, ⟺ “is the same as”, both ways: 2x + 1 = 7, then ⟺ 2x = 6, then ⟺ x = 3; no answer lost, none added. Right, ⇒ “so”, one way only: x = 3 ⇒ x² = 9 is true; x² = 9 ⇏ x = 3 is crossed out, because x could be −3. Bottom: ∴ therefore, ∵ because, ∎ and □ end of proof, ⊢ proves, ⊨ entails.چەپ، ⟺ «هەمان شتە»، بە هەردوو ئاڕاستە: 2x + 1 = 7، پاشان ⟺ 2x = 6، پاشان ⟺ x = 3؛ هیچ وەڵامێک ون نابێت و زیاد نابێت. ڕاست، ⇒ «کەواتە»، تەنیا بە یەک ئاڕاستە: x = 3 ⇒ x² = 9 ڕاستە؛ x² = 9 ⇏ x = 3 خەتی بەسەردا هاتووە، چونکە لەوانەیە x = −3 بێت. خوارەوە: ∴ کەواتە، ∵ چونکە، ∎ و □ کۆتایی سەلماندن، ⊢ دەسەلمێنێت، ⊨ لێی دەکەوێتەوە.
  ⟺  \iff goes both ways; ⇒\Rightarrow goes one way.  ⟺  \iff بە هەردوو ئاڕاستە دەڕوات؛ ⇒\Rightarrow بە یەک ئاڕاستە.CêIT

More signs of proofs: ∴\therefore “therefore” and ∵\because “because” (∴\therefore and ∵\because); ■\blacksquare or □\square, also written QED, marks the end of a proof; ⊢\vdash “proves” means a sentence can be derived with rules, and ⊨\models “entails” means it is true in every case where the left side is true (Queries and entailment).

تری : ∴\therefore «کەواتە» و ∵\because «چونکە» (∴\therefore و ∵\because)؛ ■\blacksquare یان □\square، کە بە QEDـیش دەنووسرێت، کۆتایی پیشان دەدات؛ ⊢\vdash «دەسەلمێنێت» واتە ڕستەیەک بە یاساکان دەردەهێنرێت و ⊨\models «لێی دەکەوێتەوە» () واتە لە هەموو ئەو حاڵەتانەدا ڕاستە کە لای چەپ تێیاندا ڕاستە (پرسەکان و لێکەوتنەوە).

∀\forall and ∃\exists: for all, there exists∀\forall و ∃\exists: بۆ هەموو، هەیە

Two turned letters say “how many”. ∀\forall (an upside-down A, for “all”) is read “for all”, “for every” or “for each”: ∀x∈R, x2≥0\forall x \in \mathbb{R},\ x^2 \ge 0, “for every real x, x squared is at least 0”; in Kurdish بۆ هەموو x. ∃\exists (a turned E, for “exists”) is read “there exists” or “there is at least one”: ∃n∈N, n>100\exists n \in \mathbb{N},\ n > 100, “there is a natural number n greater than 100”. ∃!\exists! means “there is exactly one” and ∄\nexists “there is no”. These signs are called quantifiers; Kurdish has no settled word for the name yet.

دوو پیتی هەڵگەڕاوە دەڵێن «چەند». ∀\forall (Aـیەکی سەرەوخوار، بۆ all) دەخوێنرێتەوە «بۆ هەموو»: ∀x∈R, x2≥0\forall x \in \mathbb{R},\ x^2 \ge 0، «بۆ هەموو x لە R\mathbb{R}ـدا، x دووجا گەورەترە لە 0 یان یەکسانە پێی». ∃\exists (Eـیەکی هەڵگەڕاوە، بۆ exists) دەخوێنرێتەوە «هەیە» یان «لانیکەم یەک … هەیە»: ∃n∈N, n>100\exists n \in \mathbb{N},\ n > 100، «لانیکەم یەک n لە N\mathbb{N}ـدا هەیە کە لە ⁦100⁩ گەورەترە». ∃!\exists! واتە «تەنیا یەک … هەیە» و ∄\nexists واتە «هیچ … نییە». بەم نیشانانە دەوترێت ؛ هێشتا وشەیەکی جێگیری کوردی بۆ ناوەکەیان نییە.

Left: ∀, for all: every student passed; five students, each with a tick. Right: ∃, there exists: at least one passed; five students, one with a tick and four with crosses. Bottom: ¬∀ ⟺ ∃¬: “not every student passed” means “at least one did not pass”.چەپ: ∀، بۆ هەموو: هەموو خوێندکاران دەرچوون؛ پێنج خوێندکار، هەریەکەیان بە نیشانەی ✓. ڕاست: ∃، هەیە: لانیکەم یەکێک دەرچوو؛ پێنج خوێندکار، یەکێکیان بە ✓ و چواریان بە ✗. خوارەوە: ¬∀ ⟺ ∃¬: «وا نییە کە هەموو خوێندکاران دەرچوون» واتە «لانیکەم یەکێک دەرنەچوو».
∀\forall needs every one; ∃\exists needs just one.∀\forall پێویستی بە هەموویانە؛ ∃\exists تەنیا بە یەکێک.CêIT

Definitions use them: a function gives every x exactly one y, ∀x∈X ∃! y∈Y:f(x)=y\forall x \in X\ \exists!\, y \in Y: f(x) = y (Notation and other names), and database queries use them too (Formulas, quantifiers and implication). To deny “all”, one counterexample is enough: ¬∀x P(x)\lnot \forall x\, P(x) is the same as ∃x ¬P(x)\exists x\, \lnot P(x), “not all” is “some are not”.

پێناسەکان بەکاریان دەهێنن: بە هەموو xـێک تەنیا یەک y دەدات، ∀x∈X ∃! y∈Y:f(x)=y\forall x \in X\ \exists!\, y \in Y: f(x) = y (شێوەی نووسین و ناوەکانی تر)؛ پرسیارەکانی بەکاریان دەهێنن (فۆرمولەکان، quantifier و گوزارەی مەرجی). بۆ ڕەتکردنەوەی «هەموو»، یەک نموونەی پێچەوانە بەسە: ¬∀x P(x)\lnot \forall x\, P(x) هەمان ∃x ¬P(x)\exists x\, \lnot P(x)ـە، «وا نییە کە هەموو» واتە «هەندێکیان نا».

Boolean algebra: ABAB, A+BA + B and 1+1=11 + 1 = 1جەبری بوول: ABAB، A+BA + B و 1+1=11 + 1 = 1

Logic design writes logic like algebra, with 0 and 1: Boolean algebra. A product is AND: ABAB or A⋅BA \cdot B. A sum is OR: A+BA + B. A bar or a prime is NOT, the complement: A‾\overline{A} or A′A^{\prime}, and a bar over a group, as in AB‾\overline{AB} (NAND), covers the whole group. So X=AB‾+CX = A\overline{B} + C reads “X equals A AND NOT B, OR C”. NOT comes first, then AND, then OR, just as multiplication comes before addition (+ means OR, · means AND).

دیزاینی لۆجیک وەک جەبر دەنووسێت، بە 0 و 1: . نووسینی پیتەکان بە دوای یەکدا، ABAB، یان A⋅BA \cdot B واتە AND. نیشانەی کۆ، A+BA + B، واتە OR. هێڵێک لەسەر پیتەکە یان پرایم واتە NOT، واتە : A‾\overline{A} یان A′A^{\prime}؛ هێڵێکیش لەسەر گرووپێک، وەک AB‾\overline{AB} ⁦(NAND)⁩، هەموو گرووپەکە دادەپۆشێت. کەواتە X=AB‾+CX = A\overline{B} + C دەخوێنرێتەوە «X یەکسانە بە A AND NOT B، OR C». سەرەتا NOT، پاشان AND، پاشان OR، هەروەک پێش دێت (+ واتە OR، · واتە AND).

Three cards. 1 + 1 = 2, arithmetic: add; two dots and two dots. 1 + 1 = 10₂, binary addition: sum 0, carry 1; a column sum 1 + 1 = 10 with the carry. 1 + 1 = 1, Boolean algebra: + means OR; two switches A = 1 and B = 1 side by side light one lamp, on: 1; one switch on is enough.سێ کارت. 1 + 1 = 2، ژمێرکاری: کۆکردنەوە؛ دوو خاڵ و دوو خاڵ. 1 + 1 = 10₂، کۆکردنەوەی دووانی: 0 و 1 دەگوازرێتەوە؛ کۆکردنەوەیەکی ستوونی 1 + 1 = 10 لەگەڵ گواستنەوەکە. 1 + 1 = 1، جەبری بوول: + واتە OR؛ دوو سویچی A = 1 و B = 1 لە تەنیشت یەکەوە گڵۆپێک دادەگیرسێنن، هەڵکراو: 1؛ یەک سویچی هەڵکراو بەسە.
The same + in three worlds.هەمان + لە سێ جیهاندا.CêIT

Because + is OR, 1+1=11 + 1 = 1: one input that is on is enough. Arithmetic gives 2 and binary addition gives 10210_2; mixing them up is a classic slip, even in careful reports (OR is not binary addition). Gate drawings carry the same ideas: in the rectangular IEC style a box marked & is AND, ≥1 is OR and =1 is XOR (Two ways to draw gates). Kurdish texts keep the gate names in Latin letters (AND, OR, NOT), and you may see the gate drawings called هێمای لۆجیکانە, “logic symbols”.

چونکە + واتە OR، 1+1=11 + 1 = 1: یەک هەڵکراو بەسە. ژمێرکاری 2 دەدات و 10210_2 دەدات؛ تێکەڵکردنیان هەڵەیەکی باوە، تەنانەت لە ڕاپۆرتی وردیشدا (OR کۆکردنەوەی دووانی نییە). وێنەی هەمان بیرۆکە هەڵدەگرن: لە شێوازی لاکێشەیی IECـدا سندووقێک بە نیشانەی & واتە AND، ≥1 واتە OR و =1 واتە XOR (دوو ڕێگا بۆ کێشانی گەیتەکان). لە دەقی کوردیدا ناوی بە پیتی لاتینی دەمێننەوە، وەک ؛ لەوانەیە بە وێنەکانیشیان بوترێت «هێمای لۆجیکانە».

The same ideas in codeهەمان بیرۆکەکان لە کۆددا

Programming languages type logic with keyboard signs, and each language has its own set:

لۆجیک بە نیشانەکانی دەنووسن و هەر زمانێک کۆمەڵە نیشانەیەکی تایبەتی خۆی هەیە:

A table of NOT, AND, OR and XOR in six notations: a logic book, Boolean algebra, Python, C and Java and PHP, MATLAB, and MySQL. NOT: ¬p, A with a bar, not p, !p, ~p, NOT p. AND: p ∧ q, AB, p and q, p && q, p && q, p AND q. OR: p ∨ q, A + B, p or q, p || q, p || q, p OR q. XOR: p ⊕ q, A ⊕ B, p != q, p ^ q, xor(p, q), p XOR q (standard SQL has no XOR).خشتەیەکی NOT، AND، OR و XOR بە شەش شێوەی نووسین: کتێبی لۆجیک، جەبری بوول، Python، C و Java و PHP، MATLAB و MySQL. NOT: ¬p، A بە هێڵێک لەسەریەوە، not p، !p، ~p، NOT p. AND: p ∧ q، AB، p and q، p && q، p && q، p AND q. OR: p ∨ q، A + B، p or q، p || q، p || q، p OR q. XOR: p ⊕ q، A ⊕ B، p != q، p ^ q، xor(p, q)، p XOR q (SQLـی ستاندارد XORـی نییە).
One idea, many spellings.یەک بیرۆکە، چەندین شێوەی نووسین.CêIT
Logic signs in Pythonنیشانەکانی لۆجیک لە Pythonـداlogic_signs.pyPYTHONType in a terminalلە تێرمیناڵدا بینووسە
p, q = True, False
print(not p, p and q, p or q)   # ¬p, p ∧ q, p ∨ q
print(p != q, p ^ q)            # p ⊕ q: two ways
print(True + True, 1 | 1)       # + adds; | is OR on bits
Explain the codeڕوونکردنەوەی کۆدەکە
Lineدێڕی 4

+ adds, even True values, so True + True is 2: for OR write or (or | on bits, where 1 | 1 is 1).

+ کۆ دەکاتەوە، تەنانەت نرخەکانی True، بۆیە True + True دەکاتە 2: بۆ OR بنووسە or (یان | لەسەر ، کە تێیدا 1 | 1 دەکاتە ⁦1⁩).

Two more traps: ^ is XOR in Python, C, Java and PHP but a power in MATLAB and Excel (Notation in computing); and &&, ||, and and or stop as soon as the answer is known (Stop as soon as the answer is known, Python stops as soon as it knows). MATLAB’s operators are in Combining conditions, SQL’s in Combining conditions: AND, OR, NOT.

دوو تەڵەی تر: ^ لە ، C، Java و PHPـدا XORـە، بەڵام لە MATLAB و Excelـدا (هێماکان لە کۆمپیوتەردا)؛ هەروەها &&، ||، and و or هەر کە وەڵامەکە زانرا دەوەستن (هەڵسەنگاندنی کورتبڕ، Python هەر کە زانی دەوەستێت). MATLAB لە تێکەڵکردنی مەرجەکانـدان و هی SQL لە تێکەڵکردنی مەرجەکان: AND، OR، NOTـدا.

Common mistakesهەڵە باوەکان

MistakeهەڵەFixچارەسەر
Calling 1+1=11 + 1 = 1 a mistake in logic designوتنی ئەوەی کە 1+1=11 + 1 = 1 لە دیزاینی هەڵەیەIn Boolean algebra + is OR: 1 OR 1 = 1لە + واتە ⁦OR: 1 OR 1 = 1⁩
Thinking “p or q” leaves out “both”وا بزانیت «p یان q» «هەردووکیان» ناگرێتەوەThe OR of logic allows both; “only one” is XOR, ⊕\oplusORـی لۆجیک ڕێگە بە هەردووکیان دەدات؛ «تەنیا یەکێکیان» XORـە، ⊕\oplus
Reading p→qp \to q as q→pq \to pخوێندنەوەی p→qp \to q وەک q→pq \to pThe arrow points one way; q→pq \to p is the converse, a different statementتیرەکە یەک ئاڕاستەی هەیە؛ q→pq \to p پێچەوانەکەیەتی، ڕستەیەکی ترە
Writing x=3  ⟺  x2=9x = 3 \iff x^2 = 9نووسینی x=3  ⟺  x2=9x = 3 \iff x^2 = 9Use ⇒\Rightarrow: x2=9x^2 = 9 also allows x=−3x = -3⇒\Rightarrow بەکار بهێنە: x2=9x^2 = 9 ڕێگە بە x=−3x = -3ـیش دەدات
Writing “or” between steps where ⇒\Rightarrow is meantنووسینی «یان» لە نێوان هەنگاوەکاندا کە مەبەست ⇒\Rightarrowـەa>b⇒a+c>b+ca > b \Rightarrow a + c > b + ca>b⇒a+c>b+ca > b \Rightarrow a + c > b + c: «کەواتە»، نەک «یان»
Reading p⊃qp \supset q in an old logic book as “superset”خوێندنەوەی p⊃qp \supset q لە کتێبێکی کۆنی لۆجیکدا وەک «»There it means p→qp \to qلەوێ واتای p→qp \to q دەدات
Denying ∀x P(x)\forall x\, P(x) with ∀x ¬P(x)\forall x\, \lnot P(x)ڕەتکردنەوەی ∀x P(x)\forall x\, P(x) بە ∀x ¬P(x)\forall x\, \lnot P(x)The denial is ∃x ¬P(x)\exists x\, \lnot P(x): one counterexample is enoughڕەتکردنەوەکە ∃x ¬P(x)\exists x\, \lnot P(x)ـە: یەک نموونەی پێچەوانە بەسە
Using ^ for a power in Pythonبەکارهێنانی ^ بۆ لە ^ is XOR there; a power is **^ لەوێ XORـە؛ بە ** دەنووسرێت
Expecting True + True to be Trueچاوەڕوانی ئەوە بیت True + True بکاتە TrueIt is 2 in Python; write orلە دەکاتە 2؛ or بنووسە

Practiceڕاهێنان

ExerciseڕاهێنانInto symbols and backبۆ هێماکان و بە پێچەوانەوە

Let p = “it rains” and q = “the match is cancelled”. Write in symbols: (a) It rains and the match is not cancelled. (b) If it rains, the match is cancelled. (c) The match is cancelled if and only if it rains. (d) It does not rain, or the match is cancelled. (e) Then say ¬q→¬p\lnot q \to \lnot p in words.

با p = «باران دەبارێت» و q = «یارییەکە هەڵدەوەشێتەوە» بێت. بە بینووسە: ⁦(a)⁩ باران دەبارێت و یارییەکە هەڵناوەشێتەوە. ⁦(b)⁩ ئەگەر باران ببارێت، یارییەکە هەڵدەوەشێتەوە. ⁦(c)⁩ یارییەکە هەڵدەوەشێتەوە ئەگەر و تەنیا ئەگەر باران ببارێت. ⁦(d)⁩ باران نابارێت یان یارییەکە هەڵدەوەشێتەوە. ⁦(e)⁩ پاشان ¬q→¬p\lnot q \to \lnot p بە وشە بڵێ.

Show answerوەڵامەکە پیشان بدە
  • (a) p∧¬qp \land \lnot q
  • (b) p→qp \to q
  • (c) q↔pq \leftrightarrow p, the same as p↔qp \leftrightarrow q
  • (d) ¬p∨q\lnot p \lor q: it has the same truth table as (b)
  • (e) “If the match is not cancelled, it does not rain.” It says the same as (b).
  • ⁦(a)⁩ p∧¬qp \land \lnot q: «و» لەگەڵ «نا»
  • ⁦(b)⁩ p→qp \to q: «ئەگەر … ئەوا»
  • ⁦(c)⁩ q↔pq \leftrightarrow p، هەمان p↔qp \leftrightarrow q
  • ⁦(d)⁩ ¬p∨q\lnot p \lor q: هەمان ⁦(b)⁩ـی هەیە
  • ⁦(e)⁩ «ئەگەر یارییەکە هەڵنەوەشێتەوە، باران نابارێت.» هەمان شتی ⁦(b)⁩ دەڵێت.
ExerciseڕاهێنانEvaluateنرخەکە بدۆزەوە

With A=1A = 1, B=0B = 0 and C=1C = 1, find: (a) A+BA + B (b) AB+CAB + C (c) A‾B+C‾\overline{A}B + \overline{C} (d) A⊕CA \oplus C (e) A+B‾\overline{A + B}

بە A=1A = 1، B=0B = 0 و C=1C = 1، ئەمانە بدۆزەوە: ⁦(a)⁩ A+BA + B ⁦(b)⁩ AB+CAB + C ⁦(c)⁩ A‾B+C‾\overline{A}B + \overline{C} ⁦(d)⁩ A⊕CA \oplus C ⁦(e)⁩ A+B‾\overline{A + B}

Show answerوەڵامەکە پیشان بدە
  • (a) 1+0=11 + 0 = 1: one input is 1
  • (b) 1⋅0+1=0+1=11 \cdot 0 + 1 = 0 + 1 = 1
  • (c) 0⋅0+0=00 \cdot 0 + 0 = 0
  • (d) 1⊕1=01 \oplus 1 = 0
  • (e) 1‾=0\overline{1} = 0
  • ⁦(a)⁩ 1+0=11 + 0 = 1: یەک 1ـە
  • ⁦(b)⁩ 1⋅0+1=0+1=11 \cdot 0 + 1 = 0 + 1 = 1: سەرەتا AND
  • ⁦(c)⁩ 0⋅0+0=00 \cdot 0 + 0 = 0: سەرەتا هێڵەکان
  • ⁦(d)⁩ 1⊕1=01 \oplus 1 = 0: هەردووکیان وەک یەکن
  • ⁦(e)⁩ 1‾=0\overline{1} = 0: NOT بۆ هەموو گرووپەکە
ExerciseڕاهێنانRead a quantified statementڕستەیەک بە quantifier بخوێنەوە

Read ∀n∈N ∃m∈N:m>n\forall n \in \mathbb{N}\ \exists m \in \mathbb{N}: m > n aloud in English and in Kurdish. Is it true? Then swap the two quantifiers: ∃m∈N ∀n∈N:m>n\exists m \in \mathbb{N}\ \forall n \in \mathbb{N}: m > n. Is that true?

∀n∈N ∃m∈N:m>n\forall n \in \mathbb{N}\ \exists m \in \mathbb{N}: m > n بە ئینگلیزی و بە کوردی بە دەنگی بەرز بخوێنەوە. ئایا ڕاستە؟ پاشان شوێنی هەردوو بگۆڕە: ∃m∈N ∀n∈N:m>n\exists m \in \mathbb{N}\ \forall n \in \mathbb{N}: m > n. ئایا ئەوە ڕاستە؟

Show answerوەڵامەکە پیشان بدە

“For every natural number n there is a natural number m greater than n”: true, take m=n+1m = n + 1. Swapped: “there is a natural number m greater than every natural number n”: false, because no natural number is the biggest (and m>mm > m fails for n = m). The order of quantifiers matters.

«بۆ هەموو n، m هەیە کە لە n گەورەترە»: ڕاستە، m=n+1m = n + 1 وەربگرە. دوای گۆڕین: « m هەیە کە لە هەموو n گەورەترە»: هەڵەیە، چونکە هیچ گەورەترین نییە (و بۆ ⁦n = m⁩، m>mm > m ڕاست نییە). ڕیزبەندیی گرنگە.

Summaryپوختە

  • Statements p, q are true (T, 1) or false (F, 0).
  • NOT: ¬p\lnot p, ∼p\sim p, p′p^{\prime}, p‾\overline{p}, !p. AND: ∧\land, &, ⋅\cdot, ABAB. OR: ∨\lor, ++, ||, always allowing both. XOR ⊕\oplus: exactly one.
  • p→qp \to q or p⇒qp \Rightarrow q, “if p then q”, is false only when p is true and q false; p↔qp \leftrightarrow q (⇔\Leftrightarrow,   ⟺  \iff), “iff”, works both ways.
  • In solutions ⇒\Rightarrow is “so” (one way) and   ⟺  \iff “is the same as” (both ways); ∴\therefore ∵\because ■\blacksquare end the reasoning.
  • ∀\forall for all, ∃\exists there exists, ∃!\exists! exactly one; “not all” is “some are not”.
  • Boolean algebra: ABAB is AND and A+BA + B is OR, so 1+1=11 + 1 = 1; in code and/or/not, && || !, & | ~.
  • All these signs, with their readings, are in the Symbol dictionary: Logic symbols and Boolean algebra.
  • وەک p و q یان ڕاستن (T، ⁦1⁩) یان هەڵە (F، ⁦0⁩).
  • NOT: ¬p\lnot p، ∼p\sim p، p′p^{\prime}، p‾\overline{p}، !p. AND: ∧\land، &، ⋅\cdot، ABAB. OR: ∨\lor، ++، ||، هەمیشە ڕێگە بە هەردووکیان دەدات. XOR ⊕\oplus: تەنیا یەکێکیان.
  • p→qp \to q یان p⇒qp \Rightarrow q، «ئەگەر p ئەوا q»، تەنیا کاتێک هەڵەیە کە p ڕاست بێت و q هەڵە؛ p↔qp \leftrightarrow q (⇔\Leftrightarrow،   ⟺  \iff)، «ئەگەر و تەنیا ئەگەر»، بە هەردوو ئاڕاستە کار دەکات.
  • لە شیکارەکاندا ⇒\Rightarrow واتە «کەواتە» (یەک ئاڕاستە) و   ⟺  \iff واتە «هەمان شتە» (هەردوو ئاڕاستە)؛ ∴\therefore ∵\because ■\blacksquare بیرکردنەوەکە تەواو دەکەن.
  • ∀\forall بۆ هەموو، ∃\exists هەیە، ∃!\exists! تەنیا یەک؛ «وا نییە کە هەموو» واتە «هەندێکیان نا».
  • : ABAB واتە AND و A+BA + B واتە OR، بۆیە 1+1=11 + 1 = 1؛ لە کۆددا and/or/not، && || !، & | ~.
  • هەموو ئەم نیشانانە، لەگەڵ خوێندنەوەکانیان، لە فەرهەنگی هەن: هێماکانی لۆجیک و جەبری بوول.
A card of sixteen signs with their readings: ¬p not p; p ∧ q p and q; p ∨ q p or q, or both; p ⊕ q exclusive or, only one; p → q if p then q; ⇒ so, one way; p ↔ q p if and only if q; ⟺ is the same as, both ways; ∀x for all x; ∃x there exists an x; ∃!x exactly one x; ∴ ∵ therefore, because; ⊨ ⊢ entails, proves; ∎ end of proof; AB and A + B, AND and OR in Boolean algebra; 1 + 1 = 1, OR, not adding.کارتێکی شازدە نیشانە لەگەڵ خوێندنەوەکانیان: ¬p «نا p»، نەفی؛ p ∧ q، p و q؛ p ∨ q، p یان q (یان هەردووکیان)؛ p ⊕ q، تەنیا یەکێکیان؛ p → q، ئەگەر p ئەوا q؛ ⇒ کەواتە (یەک ئاڕاستە)؛ p ↔ q، p ئەگەر و تەنیا ئەگەر q؛ ⟺ هەمان شتە (هەردوو ئاڕاستە)؛ ∀x بۆ هەموو x؛ ∃x، xـێک هەیە؛ ∃!x، تەنیا یەک x هەیە؛ ∴ ∵ کەواتە، چونکە؛ ⊨ ⊢ لێی دەکەوێتەوە، دەسەلمێنێت؛ ∎ کۆتایی سەلماندن؛ AB و A + B، AND و OR لە جەبری بوولدا؛ 1 + 1 = 1، OR، نەک کۆکردنەوە.
Logic signs at a glance: the symbol and how to say it. لۆجیک بە کورتی: و چۆنیەتیی خوێندنەوەی.CêIT
Review questionsپرسیارەکانی پێداچوونەوە
What is the difference between ⇒\Rightarrow and   ⟺  \iff in a worked solution?جیاوازیی نێوان ⇒\Rightarrow و   ⟺  \iff لە شیکارێکی کارکراودا چییە؟

⇒\Rightarrow: the next line follows from this one (one way).   ⟺  \iff: each line follows from the other, so nothing is lost or added.

⇒\Rightarrow: دێڕی دواتر لەم دێڕەوە دێت (یەک ئاڕاستە).   ⟺  \iff: هەر دێڕێک لە ئەوی ترەوە دێت، بۆیە هیچ شتێک ون نابێت و زیاد نابێت.

Why is 1+1=11 + 1 = 1 in logic design?بۆچی لە دیزاینی لۆجیکی دیجیتاڵدا 1+1=11 + 1 = 1ـە؟

Because + is OR there: if at least one input is 1, the output is 1.

چونکە لەوێ + واتە OR: ئەگەر لانیکەم یەک 1 بێت، 1ـە.

How do you read ∃! x\exists!\, x?∃! x\exists!\, x چۆن دەخوێنیتەوە؟

“There is exactly one x.”

«تەنیا یەک x هەیە.»

Lesson complete!وانەکە تەواو بوو!

Well done. Review the key terms, then go on to the next lesson.دەستخۆش. سەیرێکی زاراوە سەرەکییەکان بکەرەوە، پاشان بڕۆ بۆ وانەی داهاتوو.

Key termsزاراوە سەرەکییەکان

Next lessonوانەی داهاتوو

Limits, Derivatives and Integrals: lim, dy/dx, ∂ and ∫ئامانجەکان، مشتەقەکان و تەواوکارییەکان: lim، ⁦dy/dx⁩، ∂ و ∫

References and further readingسەرچاوەکان و خوێندنەوەی زیاتر

This lecture is a first edition. The Kurdish text and terminology are waiting for review by Kurdish IT teachers.ئەم وانەیە چاپی یەکەمە. دەقە کوردییەکە و زاراوەکانی چاوەڕێی پێداچوونەوەی مامۆستایانی کوردی بواری IT ن.

Appearanceڕووکار

Modeدۆخ
Styleشێواز
Coloursڕەنگەکان

Saved on this device only.تەنیا لەسەر ئەم ئامێرە پاشەکەوت دەکرێت.