التوحيد (علوم الحاسوب)

في المنطق وعلوم الحاسوب ، وتحديدًا في الاستدلال الآلي ، يُعدّ التوحيد عملية خوارزمية لحل المعادلات بين تعابير رمزية ، كل منها على شكل الطرف الأيسر = الطرف الأيمن . على سبيل المثال، باستخدام x و y و z كمتغيرات، واعتبار f دالة غير مُفسَّرة ، فإن مجموعة المعادلات الأحادية { f (1, y ) = f ( x ,2) } تُمثّل مسألة توحيد نحوية من الدرجة الأولى، ولها الاستبدال { x 1, y ↦ 2 } كحل وحيد.

تختلف الاصطلاحات حول القيم التي يمكن أن تأخذها المتغيرات والتعبيرات التي تُعتبر متكافئة. في التوحيد النحوي من الدرجة الأولى، تتراوح المتغيرات ضمن حدود الدرجة الأولى ، ويكون التكافؤ نحويًا. يتميز هذا الإصدار من التوحيد بإجابة "مثلى" فريدة، ويُستخدم في البرمجة المنطقية وتنفيذ أنظمة أنواع لغات البرمجة ، وخاصةً في خوارزميات استدلال الأنواع القائمة على هيندلي-ميلنر . في التوحيد من الدرجات العليا، والذي قد يقتصر على توحيد الأنماط من الدرجات العليا ، قد تتضمن الحدود تعبيرات لامدا، ويعتمد التكافؤ على اختزال بيتا. يُستخدم هذا الإصدار في مساعدي البرهان والبرمجة المنطقية من الدرجات العليا، مثل إيزابيل وتويلف ولامدا برولوج . أخيرًا، في التوحيد الدلالي أو التوحيد E، تخضع المساواة للمعرفة الأساسية ، وتتراوح المتغيرات ضمن نطاقات متنوعة. يُستخدم هذا الإصدار في حلول SMT ، وخوارزميات إعادة كتابة الحدود ، وتحليل البروتوكولات المشفرة .

التعريف الرسمي

مسألة التوحيد هي مجموعة محدودة E = { l1r1 , ... , ln rn } من المعادلات المطلوب حلها، حيث l1 و r1 ينتميان إلى المجموعة .تي{\displaystyle T}من المصطلحات أو التعبيرات . بناءً على التعبيرات أو المصطلحات المسموح بظهورها في مجموعة المعادلات أو مسألة التوحيد، والتعبيرات التي تُعتبر متساوية، تُفرّق عدة أطر للتوحيد. إذا سُمح باستخدام متغيرات من الرتبة العليا، أي متغيرات تُمثل دوال ، في التعبير، تُسمى العملية توحيدًا من الرتبة العليا ، وإلا تُسمى توحيدًا من الرتبة الأولى . إذا كان الحل مطلوبًا لجعل طرفي كل معادلة متساويين حرفيًا، تُسمى العملية توحيدًا نحويًا أو حرًا ، وإلا تُسمى توحيدًا دلاليًا أو معادليًا ، أو توحيدًا معياريًا ، أو توحيدًا وفقًا للنظرية .

إذا كان الجانب الأيمن من كل معادلة مغلقًا (لا توجد متغيرات حرة)، تُسمى المسألة مطابقة الأنماط . أما الجانب الأيسر (الذي يحتوي على متغيرات) من كل معادلة فيُسمى النمط . [ 1 ]

المتطلبات الأساسية

من الناحية الرسمية، يفترض نهج التوحيد

  • مجموعة لانهائيةV{\displaystyle V}من المتغيرات . ولتوحيد الرتبة الأعلى، من الملائم اختيارV{\displaystyle V}منفصلة عن مجموعة متغيرات الحدود ذات الحد اللامدا .
  • مجموعةتي{\displaystyle T}من الشروط بحيثVتي{\displaystyle V\subseteq T}لتحقيق التوحيد من الدرجة الأولى،تي{\displaystyle T}عادةً ما تكون مجموعة الحدود من الدرجة الأولى (الحدود المبنية من رموز المتغيرات والدوال). بالنسبة للتوحيد من الدرجات الأعلىتي{\displaystyle T}يتكون من حدود من الدرجة الأولى وحدود لامدا (حدود تحتوي على بعض المتغيرات ذات الرتبة الأعلى).
  • رسم الخرائطالمتغيرات:تي{\displaystyle {\text{vars}}\colon T\rightarrow }P{\displaystyle \mathbb {P} }(V){\displaystyle (V)}، وتخصيص لكل مصطلحت{\displaystyle t}المجموعةالمتغيرات(ت)V{\displaystyle {\text{vars}}(t)\subsetneq V}من المتغيرات الحرة التي تحدث فيت{\displaystyle t}.
  • نظرية أو علاقة تكافؤ{\displaystyle \equiv }علىتي{\displaystyle T}، مما يشير إلى المصطلحات التي تُعتبر متساوية. بالنسبة للتوحيد من الدرجة الأولى E،{\displaystyle \equiv }يعكس ذلك المعرفة الأساسية حول رموز وظائف معينة؛ على سبيل المثال، إذا{\displaystyle \oplus }تعتبر عملية تبادلية،تu{\displaystyle t\equiv u}لوu{\displaystyle u}نتائج منت{\displaystyle t}عن طريق تبديل وسائط{\displaystyle \oplus }في بعض (وربما جميع) الحالات. [ ملاحظة 1 ] في الحالة الأكثر شيوعًا، وهي انعدام المعرفة الأساسية تمامًا، تُعتبر المصطلحات المتطابقة حرفيًا أو نحويًا فقط متساوية. في هذه الحالة، يُطلق على ≡ اسم النظرية الحرة (لأنها كائن حر )، أو النظرية الفارغة (لأن مجموعة الجمل المعادلة ، أو المعرفة الأساسية، فارغة)، أو نظرية الدوال غير المفسرة (لأن التوحيد يتم على المصطلحات غير المفسرة )، أو نظرية المُنشئات (لأن جميع رموز الدوال تُنشئ مصطلحات البيانات فقط، بدلًا من العمل عليها). بالنسبة للتوحيد من الرتبة الأعلى، عادةًتu{\displaystyle t\equiv u}لوت{\displaystyle t}وu{\displaystyle u}متكافئة ألفا .

كمثال على كيفية تأثير مجموعة المصطلحات والنظرية على مجموعة الحلول، فإن مسألة التوحيد النحوي من الدرجة الأولى { y = cons (2, y ) } ليس لها حل على مجموعة المصطلحات المنتهية . ومع ذلك، لها حل وحيد { ycons (2, cons (2, cons (2,...))) } على مجموعة مصطلحات الشجرة اللانهائية . وبالمثل، فإن مسألة التوحيد الدلالي من الدرجة الأولى { ax = xa } لها كل استبدال من الشكل { xa ⋅...⋅ a } كحل في شبه زمرة ، أي إذا اعتبرنا (⋅) تجميعيًا . ولكن المسألة نفسها، عند النظر إليها في زمرة أبيلية ، حيث يُعتبر (⋅) تبديليًا أيضًا ، لها أي استبدال على الإطلاق كحل.

كمثال على التوحيد من الرتبة العليا، تُعدّ المجموعة المفردة { a = y ( x ) } مسألة توحيد نحوي من الرتبة الثانية، لأن y متغير دالة. أحد الحلول هو { xa , y ↦ ( دالة التطابق ) }؛ وحلّ آخر هو { y ↦ ( دالة ثابتة تربط كل قيمة بـ a ), x(أي قيمة) }.

الاستبدال

الاستبدال هو عملية ربطσ:Vتي{\displaystyle \sigma :V\rightarrow T}من المتغيرات إلى الحدود؛ الترميز{x1ت1،...،xكتك}{\displaystyle \{x_{1}\mapsto t_{1},...,x_{k}\mapsto t_{k}\}}يشير إلى عملية استبدال لكل متغيرxأنا{\displaystyle x_{i}}إلى المصطلحتأنا{\displaystyle t_{i}}، لأنا=1،...،ك{\displaystyle i=1,...,k}وكل متغير آخر لنفسه؛xأنا{\displaystyle x_{i}}يجب أن تكون متميزة ثنائياً. تطبيق هذا الاستبدال على مصطلحت{\displaystyle t}تُكتب في صيغة لاحقة على النحو التالي:ت{x1ت1،...،xكتك}{\displaystyle t\{x_{1}\mapsto t_{1},...,x_{k}\mapsto t_{k}\}}ويعني ذلك استبدال كل ظهور لكل متغير (في آن واحد).xأنا{\displaystyle x_{i}}في المصطلحت{\displaystyle t}بواسطةتأنا{\displaystyle t_{i}}النتيجةتτ{\displaystyle t\tau }تطبيق الاستبدالτ{\displaystyle \tau }إلى مصطلحت{\displaystyle t}يُطلق عليه مثال على هذا المصطلحت{\displaystyle t}كمثال من الدرجة الأولى، بتطبيق الاستبدال { xh ( a , y ), zb } على الحد

و({\displaystyle f(}x{\displaystyle {\textbf {x}}}،أ،ز({\displaystyle ,a,g()}z{\displaystyle {\textbf {z}}})،y){\displaystyle ),y)}
العائد 
و({\displaystyle f(}ح(أ،y){\displaystyle {\textbf {h}}({\textbf {a}},{\textbf {y}})}،أ،ز({\displaystyle ,a,g()}ب{\displaystyle {\textbf {b}}})،y).{\displaystyle ),y).}

التعميم والتخصيص

إذا كان المصطلحت{\displaystyle t}له مثال مكافئ لمصطلحu{\displaystyle u}أي إذاتσu{\displaystyle t\sigma \equiv u}لبعض الاستبدالσ{\displaystyle \sigma }، ثمت{\displaystyle t}يُطلق عليه اسم أكثر عمومية منu{\displaystyle u}، وu{\displaystyle u}يُطلق عليه اسم أكثر خصوصية من، أو مُندمج في،ت{\displaystyle t}. على سبيل المثال،xأ{\displaystyle x\oplus a}هو أكثر عمومية منأب{\displaystyle a\oplus b}إذا كانت ⊕ تبديلية ، فعندئذٍ(xأ){xب}=بأأب{\displaystyle (x\oplus a)\{x\mapsto b\}=b\oplus a\equiv a\oplus b}.

إذا كانت علامة ≡ تمثل التطابق الحرفي (النحوي) بين المصطلحات، فقد يكون مصطلح ما أكثر عمومية وخصوصية من مصطلح آخر فقط إذا اختلف المصطلحان في أسماء متغيراتهما فقط، وليس في بنيتهما النحوية؛ وتُسمى هذه المصطلحات متغيرات ، أو إعادة تسمية لبعضها البعض. على سبيل المثال، و(x1،أ،ز(z1)،y1){\displaystyle f(x_{1},a,g(z_{1}),y_{1})} هو شكل مختلف من و(x2،أ،ز(z2)،y2){\displaystyle f(x_{2},a,g(z_{2}),y_{2})}، منذ و(x1،أ،ز(z1)،y1){x1x2،y1y2،z1z2}=و(x2،أ،ز(z2)،y2){\displaystyle f(x_{1},a,g(z_{1}),y_{1})\{x_{1}\mapsto x_{2},y_{1}\mapsto y_{2},z_{1}\mapsto z_{2}\}=f(x_{2},a,g(z_{2}),y_{2})} و و(x2،أ،ز(z2)،y2){x2x1،y2y1،z2z1}=و(x1،أ،ز(z1)،y1).{\displaystyle f(x_{2},a,g(z_{2}),y_{2})\{x_{2}\mapsto x_{1},y_{2}\mapsto y_{1},z_{2}\mapsto z_{1}\}=f(x_{1},a,g(z_{1}),y_{1}).} لكن،و(x1،أ،ز(z1)،y1){\displaystyle f(x_{1},a,g(z_{1}),y_{1})}ليس نوعًا مختلفًا منو(x2،أ،ز(x2)،x2){\displaystyle f(x_{2},a,g(x_{2}),x_{2})}بما أنه لا يمكن لأي استبدال أن يحول الحد الأخير إلى الحد الأول، فإن الحد الأخير بالتالي أكثر خصوصية من الحد الأول.

لـ{\displaystyle \equiv }قد يكون المصطلح أكثر عمومية وخصوصية من مصطلح مختلف بنيويًا. على سبيل المثال، إذا كان ⊕ متطابقًا ، أي إذا كان دائمًاxxx{\displaystyle x\oplus x\equiv x}ثم المصطلحxy{\displaystyle x\oplus y}هو أكثر عمومية منz{\displaystyle z}، [ ملاحظة 2 ] والعكس صحيح، [ ملاحظة 3 ] على الرغم منxy{\displaystyle x\oplus y}وz{\displaystyle z}لها بنية مختلفة.

استبدالσ{\displaystyle \sigma }أكثر خصوصية من البديل أو يندرج تحتهτ{\displaystyle \tau }لوتσ{\displaystyle t\sigma }يتم تضمينها بواسطةتτ{\displaystyle t\tau }لكل فصل دراسيت{\displaystyle t}ونقول أيضاً أنτ{\displaystyle \tau }هو أكثر عمومية منσ{\displaystyle \sigma }بصورة أكثر رسمية، خذ مجموعة غير فارغة لا نهائيةV{\displaystyle V}من المتغيرات المساعدة بحيث لا توجد معادلةلأنارأنا{\displaystyle l_{i}\doteq r_{i}}تتضمن مسألة التوحيد متغيرات منV{\displaystyle V}ثم استبدالσ{\displaystyle \sigma }يتم تضمينها بواسطة بديل آخرτ{\displaystyle \tau }في حالة وجود بديلθ{\displaystyle \theta }بحيث يكون ذلك لجميع الحدودXV{\displaystyle X\notin V}،XσXτθ{\displaystyle X\sigma \equiv X\tau \theta }[ 2 ] على سبيل المثال{xأ،yأ}{\displaystyle \{x\mapsto a,y\mapsto a\}}يتم تضمينها بواسطةτ={xy}{\displaystyle \tau =\{x\mapsto y\}}، استخدامθ={yأ}{\displaystyle \theta =\{y\mapsto a\}}، لكن σ={xأ}{\displaystyle \sigma =\{x\mapsto a\}}لا يتم تضمينها بواسطةτ={xy}{\displaystyle \tau =\{x\mapsto y\}}، مثلو(x،y)σ=و(أ،y){\displaystyle f(x,y)\sigma =f(a,y)}لا يُعد مثالاً على و(x،y)τ=و(y،y){\displaystyle f(x,y)\tau =f(y,y)}[ 3 ]

مجموعة الحلول

يُعدّ الاستبدال σ حلاً لمسألة التوحيد E إذا كان l i σ ≡ r i σ لـأنا=1،...،ن{\displaystyle i=1,...,n}يُطلق على هذا الاستبدال أيضًا اسم موحد E. على سبيل المثال، إذا كانت ⊕ تجميعية ، فإن مسألة التوحيد { xaax } لها الحلول { xa }، { xaa }، { xaaa }، إلخ، بينما المسألة { xaa } ليس لها حل.

بالنسبة لمسألة توحيد معينة E ، تُسمى مجموعة S من الموحدات كاملة إذا تم تضمين كل استبدال حل بواسطة استبدال ما في S. توجد دائمًا مجموعة استبدال كاملة (على سبيل المثال، مجموعة جميع الحلول)، ولكن في بعض الأطر (مثل التوحيد غير المقيد من الرتبة العليا) تكون مشكلة تحديد ما إذا كان هناك أي حل موجود (أي ما إذا كانت مجموعة الاستبدال الكاملة غير فارغة) غير قابلة للتقرير.

تُسمى المجموعة S مجموعةً دنيا إذا لم يكن أيٌّ من عناصرها يشمل عنصرًا آخر. وبحسب الإطار، قد تحتوي مجموعة الاستبدال الكاملة والدنيا على صفر، أو عنصر واحد، أو عدد محدود، أو عدد لا نهائي من العناصر، أو قد لا توجد أصلًا بسبب سلسلة لا نهائية من العناصر الزائدة. [ 4 ] لذا، تُحسب خوارزميات التوحيد عمومًا تقريبًا محدودًا للمجموعة الكاملة، والذي قد يكون دنيا أو لا، مع أن معظم الخوارزميات تتجنب الموحدات الزائدة قدر الإمكان. [ 2 ] بالنسبة للتوحيد النحوي من الدرجة الأولى، قدّم مارتيلي ومونتاني [ 5 ] خوارزمية تُبلغ عن عدم إمكانية الحل أو تحسب موحدًا واحدًا يُشكّل بحد ذاته مجموعة استبدال كاملة ودنيا، ويُسمى الموحد الأكثر عمومية .

التوحيد النحوي للمصطلحات من الدرجة الأولى

مخطط مثلثي تخطيطي للمصطلحات الموحدة نحويًا t1 و t2 عن طريق استبدال σ

يُعدّ التوحيد النحوي للحدود من الرتبة الأولى إطار التوحيد الأكثر استخدامًا. وهو قائم على اعتبار T مجموعة الحدود من الرتبة الأولى (ضمن مجموعة معطاة V من المتغيرات، و C من الثوابت، و Fn من رموز الدوال من الرتبة n )، وعلى اعتبار ≡ مساواة نحوية . في هذا الإطار، لكل مسألة توحيد قابلة للحل { l1 r1 , ..., ln rn } مجموعة حلول أحادية كاملة، وبديهية دنيا، { σ } . يُطلق على العنصر σ اسم الموحّد الأكثر عمومية ( mgu ) للمسألة. تصبح الحدود على جانبي كل معادلة كامنة متساوية نحويًا عند تطبيق mgu، أي l1 σ = r1 σ ... ln σ = rn σ . أي موحّد للمسألة يُدمج ضمن mgu σ [ ملاحظة 4 ] . تكون مجموعة الحلول المصغرة فريدة حتى المتغيرات: إذا كانت S 1 و S 2 مجموعتي حلول كاملة ودنيا لنفس مشكلة التوحيد النحوي، فإن S 1 = { σ 1 } و S 2 = { σ 2 } لبعض الاستبدالات σ 1 و σ 2 ، و 1 هو متغير من 2 لكل متغير x يظهر في المشكلة.

على سبيل المثال، مسألة التوحيد { xz , yf ( x ) } لها موحد { xz , yf ( z ) }، لأن

x{ xz , yf ( z ) }=z=z{ xz , yf ( z ) }، و
y{ xz , yf ( z ) }=f ( z )=f ( x ){ xz , yf ( z ) }.

هذا هو أيضاً الموحد الأكثر عمومية. ومن الموحدات الأخرى لنفس المسألة، على سبيل المثال: { xf ( x 1 ), yf ( f ( x 1 )), zf ( x 1 ) }, { xf ( f ( x 1 )), yf ( f ( f ( x 1 ))), zf ( f ( x 1 )) }، وهكذا؛ فهناك عدد لا نهائي من الموحدات المشابهة.

كمثال آخر، فإن المشكلة g ( x , x ) ≐ f ( y ) ليس لها حل فيما يتعلق بـ ≡ كونها هوية حرفية، حيث أن أي استبدال يتم تطبيقه على الجانبين الأيسر والأيمن سيحافظ على g و f الخارجيين على التوالي، والمصطلحات ذات رموز الوظائف الخارجية المختلفة تختلف نحويًا.

خوارزميات التوحيد

خوارزمية التوحيد لروبنسون عام 1965

تُرتب الرموز بحيث تسبق المتغيرات رموز الدوال. تُرتب المصطلحات حسب تزايد طولها المكتوب؛ أما المصطلحات المتساوية في الطول فتُرتّب معجميًا . [ 6 ] بالنسبة لمجموعة T من المصطلحات، فإن مسار عدم التطابق p هو أقصر مسار معجميًا حيث يختلف مصطلحان من T. مجموعة عدم التطابق هي مجموعة المصطلحات الفرعية التي تبدأ من p ، رسميًا: { t | p  : t T }. [ 7 ]

الخوارزمية: [ 8 ]

بافتراض وجود مجموعة T من المصطلحات المراد توحيدها لنفترض أن σ هي في البداية عملية استبدال الهوية إلى الأبد   إذا كانت T σ مجموعة أحادية، فأرجع σ . ليكن D مجموعة عدم التوافق لـ T σ . ليكن s و t أصغر مصطلحين معجميًا في D. إذا لم يكن s متغيرًا أو ظهر s في  فأرجع "غير قابل للتوحيد" .                     σ:=σ{sت}{\displaystyle \sigma :=\sigma \{s\mapsto t\}} منتهي 

ناقش جاك هيربراند المفاهيم الأساسية للتوحيد ورسم مخططًا لخوارزمية في عام 1930. [ 9 ] [ 10 ] [ 11 ] لكن معظم المؤلفين ينسبون أول خوارزمية توحيد إلى جون آلان روبنسون (انظر المربع). [ 12 ] [ 13 ] [ ملاحظة 5 ] اتسمت خوارزمية روبنسون بسلوك أسي في أسوأ الحالات من حيث الوقت والمساحة. [ 11 ] [ 15 ] وقد اقترح العديد من المؤلفين خوارزميات توحيد أكثر كفاءة. [ 16 ] تم اكتشاف خوارزميات ذات أداء خطي في أسوأ الحالات بشكل مستقل من قبل مارتيلي ومونتانياري (1976) وباترسون وويغمان ( 1976 ) [ ملاحظة 6 ] . يستخدم بادر وسنايدر (2001) تقنية مشابهة لتقنية باترسون-ويغمان، وبالتالي فهو خطي، [ 17 ] ولكنه، كمعظم خوارزميات التوحيد الخطية، أبطأ من نسخة روبنسون عند استخدام مدخلات صغيرة الحجم نظرًا لتكاليف المعالجة المسبقة للمدخلات والمعالجة اللاحقة للمخرجات، مثل إنشاء تمثيل DAG . يتميز دي شامبو (2022) أيضًا بتعقيد خطي بالنسبة لحجم المدخلات، ولكنه ينافس خوارزمية روبنسون عند استخدام مدخلات صغيرة الحجم. ويتحقق تحسين السرعة باستخدام تمثيل كائني التوجه لحساب المسند، مما يغني عن الحاجة إلى المعالجة المسبقة واللاحقة، ويجعل الكائنات المتغيرة مسؤولة عن إنشاء الاستبدال ومعالجة التداخل. يزعم دي شامبو أن القدرة على إضافة وظائف إلى حساب المسندات المُمثلة ككائنات برمجية توفر فرصًا لتحسين عمليات منطقية أخرى أيضًا. [ 15 ]

تُعرض الخوارزمية التالية بشكل شائع، وهي مأخوذة من مارتيلي ومونتانياري (1982) . [ ملاحظة 7 ] بالنظر إلى مجموعة منتهيةجي={s1ت1،...،sنتن}{\displaystyle G=\{s_{1}\doteq t_{1},...,s_{n}\doteq t_{n}\}}من المعادلات المحتملة، تُطبّق الخوارزمية قواعد لتحويلها إلى مجموعة مكافئة من المعادلات على الصورة { x 1u 1 , ..., x mu m }، حيث x 1 , ..., x m متغيرات مختلفة، و u 1 , ..., u m حدود لا تحتوي على أي من x i . يمكن قراءة مجموعة من هذا الشكل على أنها استبدال. إذا لم يكن هناك حل، تتوقف الخوارزمية بالرمز ⊥؛ يستخدم مؤلفون آخرون الرمز "Ω" أو " فشل " في هذه الحالة. يُرمز لعملية استبدال جميع حالات المتغير x في المسألة G بالحد t بالرمز G { xt }. ولتبسيط الأمر، تُعتبر الرموز الثابتة رموز دوال ذات وسائط صفرية.

جي{تت}{\displaystyle G\cup \{t\doteq t\}}{\displaystyle \Rightarrow }جي{\displaystyle G} يمسح
جي{و(s0،...،sك)و(ت0،...،تك)}{\displaystyle G\cup \{f(s_{0},...,s_{k})\doteq f(t_{0},...,t_{k})\}}{\displaystyle \Rightarrow }جي{s0ت0،...،sكتك}{\displaystyle G\cup \{s_{0}\doteq t_{0},...,s_{k}\doteq t_{k}\}} تحلل
جي{و(s0،...،sك)ز(ت0،...،تم)}{\displaystyle G\cup \{f(s_{0},\ldots ,s_{k})\doteq g(t_{0},...,t_{m})\}}{\displaystyle \Rightarrow }{\displaystyle \bot }لووز{\displaystyle f\neq g}أوكم{\displaystyle k\neq m} صراع
جي{و(s0،...،sك)x}{\displaystyle G\cup \{f(s_{0},...,s_{k})\doteq x\}}{\displaystyle \Rightarrow }جي{xو(s0،...،sك)}{\displaystyle G\cup \{x\doteq f(s_{0},...,s_{k})\}} تبديل
جي{xت}{\displaystyle G\cup \{x\doteq t\}}{\displaystyle \Rightarrow }جي{xت}{xت}{\displaystyle G\{x\mapsto t\}\cup \{x\doteq t\}}لوxالمتغيرات(ت){\displaystyle x\not \in {\text{vars}}(t)}وxالمتغيرات(جي){\displaystyle x\in {\text{vars}}(G)} حذف [ ملاحظة 8 ]
جي{xو(s0،...،sك)}{\displaystyle G\cup \{x\doteq f(s_{0},...,s_{k})\}}{\displaystyle \Rightarrow }{\displaystyle \bot }لوxالمتغيرات(و(s0،...،sك)){\displaystyle x\in {\text{vars}}(f(s_{0},...,s_{k}))} يفحص

التحقق من حدوث الأحداث

إن محاولة توحيد المتغير x مع حد يحتوي على x كحد فرعي صارم xf (..., x , ...) ستؤدي إلى حد لانهائي كحل لـ x ، لأن x سيظهر كحد فرعي لنفسه. في مجموعة الحدود من الرتبة الأولى (المحدودة) كما هو مُعرّف أعلاه، لا يوجد حل للمعادلة xf (..., x , ...)؛ لذا لا يمكن تطبيق قاعدة الحذف إلا إذا كان xvars ( t ). ولأن هذا الفحص الإضافي، المسمى فحص الظهور ، يُبطئ الخوارزمية، فإنه يُحذف، على سبيل المثال، في معظم أنظمة برولوج. من وجهة نظر نظرية، يُعد حذف هذا الفحص بمثابة حل معادلات على أشجار لانهائية، انظر #توحيد الحدود اللانهائية أدناه.

إثبات إنهاء الخدمة

لإثبات انتهاء الخوارزمية، ضع في اعتبارك ثلاثيةنvأر،نلحs،نهـqن{\displaystyle \langle n_{var},n_{lhs},n_{eqn}\rangle } حيث n <sub>var</sub> هو عدد المتغيرات التي تظهر أكثر من مرة في مجموعة المعادلات، و n<sub> lhs</sub> هو عدد رموز الدوال والثوابت في الجانب الأيسر من المعادلات المحتملة، و n <sub>eqn</sub> هو عدد المعادلات. عند تطبيق قاعدة الحذف ، ينخفض ​​n <sub>var </sub>، حيث يتم حذف x من G ويبقى فقط في { xt }. لا يمكن لأي قاعدة أخرى أن تزيد n <sub>var</sub> مرة أخرى. عند تطبيق قواعد التفكيك أو التعارض أو التبديل ، ينخفض ​​n <sub>lhs </sub>، حيث تختفي على الأقل الدالة الخارجية f في الجانب الأيسر . لا يمكن لأي من القاعدتين المتبقيتين (الحذف أو التحقق) أن تزيد n <sub>lhs</sub> ، ولكنها تقلل n <sub>eqn</sub> . وبالتالي، فإن أي تطبيق لقاعدة ما يقلل من الثلاثية.نvأر،نلحs،نهـqن{\displaystyle \langle n_{var},n_{lhs},n_{eqn}\rangle }فيما يتعلق بالترتيب المعجمي ، وهو أمر ممكن فقط لعدد محدود من المرات.

يلاحظ كونور ماكبرايد [ 18 ] أنه "من خلال التعبير عن البنية التي يستغلها التوحيد" في لغة ذات أنواع معتمدة مثل Epigram ، يمكن جعل خوارزمية التوحيد الخاصة بروبنسون متكررة على عدد المتغيرات ، وفي هذه الحالة يصبح إثبات الإنهاء المنفصل غير ضروري.

أمثلة على التوحيد النحوي للمصطلحات من الدرجة الأولى

في اصطلاحات لغة برولوج النحوية، يُعتبر الرمز الذي يبدأ بحرف كبير اسم متغير، بينما يُعتبر الرمز الذي يبدأ بحرف صغير رمز دالة. وتُستخدم الفاصلة كعامل منطقي "و" . أما في الترميز الرياضي ، فتُستخدم x وy وz كمتغيرات، و f وg كرموز دوال، و a وb كثوابت.

تدوين برولوجالترميز الرياضيالاستبدال الموحدتوضيح
a = a { a = a }{}ينجح. ( تكرار )
a = b { أ = ب }أ و ب لا يتطابقان
X = X { x = x }{}ينجح. ( تكرار )
a = X { a = x }{ xa }يتم توحيد x مع الثابت a
X = Y { x = y }{ xy }x و y متداخلان
f(a,X) = f(a,b) { f ( a , x ) = f ( a , b ) }{ xb }تتطابق رموز الدالة والثابت، ويتم توحيد x مع الثابت b
f(a) = g(a) { f ( a ) = g ( a ) }لا يتطابق الحرفان f و g
f(X) = f(Y) { f ( x ) = f ( y ) }{ xy }x و y متداخلان
f(X) = g(Y) { f ( x ) = g ( y ) }لا يتطابق الحرفان f و g
f(X) = f(Y,Z) { f ( x ) = f ( y , z ) }فشل. رموز الدالة f لها عدد معاملات مختلف
f(g(X)) = f(Y) { f ( g ( x )) = f ( y ) }{ yg ( x ) }يوحد y مع المصطلح ز(x){\displaystyle g(x)}
f(g(X),X) = f(Y,a) { f ( g ( x ), x ) = f ( y , a ) }{ xa , yg ( a ) }يوحد x مع الثابت a ، و y مع الحد ز(أ){\displaystyle g(a)}
X = f(X) { x = f ( x ) }يجب أن يكون ⊥تُرجع ⊥ في منطق الدرجة الأولى والعديد من لهجات برولوج الحديثة (يتم فرضها بواسطة فحص الأحداث ).

ينجح في لغة برولوج التقليدية وفي برولوج II، حيث يوحد x مع مصطلح لانهائي x=f(f(f(f(...)))).

X = Y, Y = a { x = y , y = a }{ xa , ya }يتم توحيد كل من x و y بالثابت a
a = Y, X = Y { a = y , x = y }{ xa , ya }كما سبق (ترتيب المعادلات في المجموعة لا يهم)
X = a, b = X { x = a , b = x }فشل. لا يتطابق a و b ، لذا لا يمكن توحيد x مع كليهما
مصطلحان بشجرة أكبر بشكل كبير لأقل حالاتهما شيوعًا. تمثيلها البياني الموجه غير الدوري (الجزء البرتقالي في أقصى اليمين) لا يزال بحجم خطي.

قد يكون للموحد الأكثر عمومية لمسألة توحيد نحوي من الدرجة الأولى بحجم n حجم يساوي 2n . على سبيل المثال، المسألة (((أ*z)*y)*x)*ww*(x*(y*(z*أ))){\displaystyle (((a*z)*y)*x)*w\doteq w*(x*(y*(z*a)))}يمتلك أكثر الموحدين عمومية{zأ،yأ*أ،x(أ*أ)*(أ*أ)،w((أ*أ)*(أ*أ))*((أ*أ)*(أ*أ))}{\displaystyle \{z\mapsto a,y\mapsto a*a,x\mapsto (a*a)*(a*a),w\mapsto ((a*a)*(a*a))*((a*a)*(a*a))\}}انظر الصورة. لتجنب التعقيد الزمني الأسي الناتج عن هذا التضخم، تعمل خوارزميات التوحيد المتقدمة على الرسوم البيانية الموجهة غير الدورية (DAGs) بدلاً من الأشجار. [ 19 ]

التطبيق: التوحيد في البرمجة المنطقية

يُعدّ مفهوم التوحيد أحد الأفكار الرئيسية في البرمجة المنطقية . وبالتحديد، يُمثّل التوحيد لبنة أساسية في عملية الاستدلال ، وهي قاعدة استدلال لتحديد مدى إمكانية تحقيق الصيغ. في لغة برولوج ، يُشير رمز المساواة =إلى التوحيد النحوي من الدرجة الأولى. وهو يُمثّل آلية ربط محتويات المتغيرات، ويمكن اعتباره نوعًا من التعيين لمرة واحدة.

في لغة البرولوج:

  1. يمكن توحيد متغير مع ثابت أو حد أو متغير آخر، ليصبح بذلك بديلاً عنه. في العديد من لهجات لغة برولوج الحديثة وفي منطق الرتبة الأولى ، لا يمكن توحيد متغير مع حد يحتويه؛ وهذا ما يُعرف بفحص التكرار .
  2. لا يمكن توحيد ثابتين إلا إذا كانا متطابقين.
  3. وبالمثل، يمكن توحيد حد مع حد آخر إذا كانت رموز الدالة العليا وعدد معاملات الحدين متطابقة، وإذا أمكن توحيد المعاملات في آن واحد. لاحظ أن هذا سلوك تكراري.
  4. معظم العمليات، بما في ذلك +، -، ، *، /، لا يتم تقييمها بواسطة =. لذا، على سبيل المثال 1+2 = 3، لا يمكن تحقيق لأنها مختلفة نحويًا. يُدخل استخدام قيود الحساب الصحيح #=شكلاً من أشكال التوحيد E الذي يتم فيه تفسير هذه العمليات وتقييمها. [ 20 ]

التطبيق: استنتاج النوع

تعتمد خوارزميات استنتاج الأنواع عادةً على التوحيد، وخاصةً استنتاج أنواع هيندلي-ميلنر المستخدم في لغتي البرمجة الوظيفية هاسكل و ML . على سبيل المثال، عند محاولة استنتاج نوع تعبير هاسكل ، سيستخدم المترجم نوع دالة إنشاء القائمة ، ونوع الوسيط الأول ، ونوع الوسيط الثاني . سيتم توحيد متغير النوع متعدد الأشكال مع ، وسيتم توحيد الوسيط الثاني مع . لا يمكن أن يكون كلا النوعين و في الوقت نفسه، لذلك فإن هذا التعبير غير مُحدد النوع بشكل صحيح.True : ['x']a -> [a] -> [a](:)BoolTrue[Char]['x']aBool[a][Char]aBoolChar

كما هو الحال بالنسبة للغة برولوج، يمكن تقديم خوارزمية لاستنتاج النوع:

  1. أي متغير نوعي يتحد مع أي تعبير نوعي، ويتم إنشاء نسخة منه بناءً على ذلك التعبير. قد تقيد نظرية معينة هذه القاعدة بفحص حدوثها.
  2. لا يتوحد نوعان ثابتان إلا إذا كانا من نفس النوع.
  3. لا تتوحد بنيتان من النوع إلا إذا كانتا تطبيقين لنفس مُنشئ النوع وتتوحد جميع أنواع مكوناتهما بشكل متكرر.

التطبيق: توحيد بنية الميزات

تم استخدام التوحيد في مجالات بحثية مختلفة في اللغويات الحاسوبية. [ 21 ] [ 22 ]

التوحيد المصنف حسب الترتيب

يُتيح منطق الترتيب إمكانية إسناد نوع أو تصنيف لكل مصطلح، وتعريف نوع s1 كنوع فرعي من نوع s2 ، ويُكتب عادةً على النحو التالي: s1 s2 . على سبيل المثال، عند التفكير في الكائنات الحية، من المفيد تعريف نوع dog كنوع فرعي من نوع animal . حيثما يلزممصطلح من نوع s ، يمكن توفير مصطلح من أي نوع فرعي من s بدلاً منه. على سبيل المثال، بافتراض تعريف دالة mother : animal animal ، وتعريف ثابت lassie : dog ، فإن المصطلح mother ( lassie ) صحيح تمامًا وله النوع animal . ولتوفير معلومة أن أم الكلب هي كلبة بدورها،يمكن إصدار تعريف آخر mother : dog dog ؛ وهذا ما يُسمى تحميل الدوال ، وهو مشابه للتحميل الزائد في لغات البرمجة .

قدّم والثر خوارزمية توحيد للمصطلحات في منطق الترتيب، تشترط لأي نوعين مُعلنين s1 و s2 أن يكون تقاطعهما s1s2 مُعلنًا أيضًا: إذا كان x1 و x2 متغيرًا من النوع s1 و s2 على التوالي ، فإن المعادلة x1 ≐ x2 لها الحل {x1 = x, x2 = x } ، حيث x : s1 s2 . [ 23 ] بعد دمج هذه الخوارزمية في مُثبت نظريات آلي قائم على البنود ، تمكن من حل مسألة معيارية عن طريق ترجمتها إلى منطق الترتيب ، وبالتالي تبسيطها بمقدار عشرة أضعاف، حيث تحولت العديد من المسندات الأحادية إلى أنواع .

عمّم سمولكا منطق الترتيب المرتب للسماح بتعدد الأشكال البارامتري . [ 24 ] في إطاره، تُعمّم تعريفات الفرز الفرعي إلى تعبيرات الأنواع المعقدة. كمثال برمجي، يمكن تعريف قائمة فرز بارامترية ( X ) (حيث X هو معامل نوع كما في قالب C++ )، ومن تعريف الفرز الفرعي intfloat، تُستنتج العلاقة list ( int ) ⊆ list ( float ) تلقائيًا، مما يعني أن كل قائمة من الأعداد الصحيحة هي أيضًا قائمة من الأعداد العشرية.

عمّم شميدت-شاوس منطق الترتيب المرتب للسماح بتصريحات المصطلحات. [ 25 ] على سبيل المثال، بافتراض تصريحات الترتيب الفرعي زوجي عدد صحيح وفردي ⊆ عدد صحيح ، فإن تصريح مصطلح مثل ∀ i : عدد صحيح . ( i + i ) : زوجي يسمح بتصريح خاصية جمع الأعداد الصحيحة التي لا يمكن التعبير عنها بالتحميل الزائد العادي.  

توحيد المصطلحات اللانهائية

معلومات أساسية عن الأشجار اللانهائية:

خوارزمية التوحيد، برولوج 2:

  • أ. كولميراور (1982). ك. ل. كلارك؛ س. أ. تارنلوند (محرران). برولوج والأشجار اللانهائية . دار النشر الأكاديمية.
  • آلان كولميرور (1984). "المعادلات والمتباينات على الأشجار المنتهية وغير المنتهية". في ICOT (محرر). وقائع المؤتمر الدولي لأنظمة الحاسوب من الجيل الخامس . الصفحات 85-99 . 

التطبيقات:

التوحيد الإلكتروني

التوحيد الإلكتروني هو مشكلة إيجاد حلول لمجموعة معينة من المعادلات ، مع الأخذ في الاعتبار بعض المعارف الأساسية المتعلقة بالمعادلات E. تُعطى هذه المعارف على شكل مجموعة من المتساويات العامة . بالنسبة لبعض المجموعات E المحددة، تم ابتكار خوارزميات لحل المعادلات (تُعرف أيضًا بخوارزميات التوحيد الإلكتروني )؛ أما بالنسبة لمجموعات أخرى، فقد ثبت أنه لا يمكن وجود مثل هذه الخوارزميات.

على سبيل المثال، إذا كان a و b ثابتين مختلفين، فإن المعادلةx*أy*ب{\displaystyle x*a\doteq y*b}لا يوجد حل فيما يتعلق بالتوحيد النحوي البحت ، حيث لا يُعرف شيء عن العامل .*{\displaystyle *}ومع ذلك، إذا كان*{\displaystyle *}إذا كانت العملية تبادلية ، فإن التعويض { xb , ya } يحل المعادلة أعلاه، لأن

x*أ{\displaystyle x*a}{ xb , ya }
=ب*أ{\displaystyle b*a}عن طريق تطبيق الاستبدال
=أ*ب{\displaystyle a*b}بواسطة خاصية التبديل لـ*{\displaystyle *}
=y*ب{\displaystyle y*b}{ xb , ya }عن طريق تطبيق الاستبدال (العكسي)

يمكن للمعرفة الأساسية E أن توضح خاصية التبادلية لـ*{\displaystyle *}بمبدأ المساواة الشاملةu*v=v*u{\displaystyle u*v=v*u}لجميع u و v " .

مجموعات المعرفة الأساسية الخاصة E

تم استخدام اصطلاحات التسمية
u , v , w :u*(v*w){\displaystyle u*(v*w)}=(u*v)*w{\displaystyle (u*v)*w}أخاصية الترابط لـ*{\displaystyle *}
u , v :u*v{\displaystyle u*v}=v*u{\displaystyle v*u}جخاصية التبديل لـ*{\displaystyle *}
u , v , w :u*(v+w){\displaystyle u*(v+w)}=u*v+u*w{\displaystyle u*v+u*w}دي إلالتوزيع الأيسر لـ*{\displaystyle *}انتهى+{\displaystyle +}
u , v , w :(v+w)*u{\displaystyle (v+w)*u}=v*u+w*u{\displaystyle v*u+w*u}دكتورالتوزيع الأيمن لـ*{\displaystyle *}انتهى+{\displaystyle +}
u :u*u{\displaystyle u*u}=uأناخاصية التكرار لـ*{\displaystyle *}
u :ن*u{\displaystyle n*u}=uهولنداالعنصر المحايد الأيسر n بالنسبة إلى *{\displaystyle *}
u :u*ن{\displaystyle u*n}=u  رقم ر  العنصر المحايد الأيمن n بالنسبة إلى*{\displaystyle *}

يُقال إن التوحيد قابل للتقرير بالنسبة لنظرية ما، إذا وُضعت لها خوارزمية توحيد تنتهي عند أي مسألة إدخال. ويُقال إن التوحيد شبه قابل للتقرير بالنسبة لنظرية ما، إذا وُضعت لها خوارزمية توحيد تنتهي عند أي مسألة إدخال قابلة للحل ، ولكنها قد تستمر في البحث إلى ما لا نهاية عن حلول لمسألة إدخال غير قابلة للحل.

يمكن تحديد التوحيد للنظريات التالية:

التوحيد قابل للتقرير جزئياً بالنسبة للنظريات التالية:

التعديل البارامتري أحادي الجانب

إذا كان هناك نظام إعادة كتابة مصطلح متقارب R متاح لـ E ، فيمكن استخدام خوارزمية التعديل البارامتري أحادي الجانب [ 37 ] لحصر جميع حلول المعادلات المعطاة.

قواعد التعديل البارامتري أحادي الجانب
G ∪ { f ( s 1 ,..., s n ) ≐ f ( t 1 ,..., t n ) }S ;G ∪ { s 1t 1 , ..., s nt n }S ;  تحلل
G ∪ { xt }S ;G { xt }; S { xt } ∪ { xt }إذا لم يظهر المتغير x في t  اِسْتَبْعَد
G ∪ { f ( s 1 ,..., s n ) ≐ t }S ;G ∪ { s 1 ≐ u 1 , ..., s n ≐ u n , rt }S ;  إذا كانت f ( u 1 ,..., u n ) → r قاعدة من R  تحوّل
G ∪ { f ( s 1 ,..., s n ) ≐ y }S ;G ∪ { s 1 y 1 , ..., s nyn , y f ( y 1 ,..., yn ) }S ;إذا كانت y1 ، ...، yn متغيرات جديدة  قلد

بدءًا من G باعتبارها مسألة التوحيد المراد حلها و S باعتبارها استبدال الهوية، تُطبَّق القواعد بشكل غير حتمي حتى تظهر المجموعة الفارغة كـ G الفعلية، وفي هذه الحالة تكون S الفعلية استبدالًا موحدًا. اعتمادًا على ترتيب تطبيق قواعد التعديل البارامتري، واختيار المعادلة الفعلية من G ، واختيار قواعد R في mutate ، توجد مسارات حسابية مختلفة ممكنة. بعضها فقط يؤدي إلى حل، بينما ينتهي البعض الآخر عند G ≠ {} حيث لا يمكن تطبيق أي قاعدة أخرى (مثل G = { f (...) ≐ g (...) }).

نظام إعادة كتابة المصطلحات على سبيل المثال R
1تطبيق ( لا شيء ، z )z
2  تطبيق ( س ، ص ، ع )x . app ( y , z )

على سبيل المثال، يُستخدم نظام إعادة كتابة المصطلحات R لتعريف عامل الإلحاق للقوائم المُنشأة من cons و nil ؛ حيث تُكتب cons ( x , y ) في صيغة الوسط x.y للاختصار ؛ على سبيل المثال ، app ( a.b.nil , c.d.nil )a.app ( b.nil , c.d.nil ) → a.b.app ( nil , c.d.nil ) a.b.c.d.nil يوضح دمج القائمتين a.b.nil و c.d.nil ، باستخدام قاعدة إعادة الكتابة 2،2 ، و 1 . النظرية المعادلة E المقابلة لـ R هي الإغلاق التوافقي لـ R ، وكلاهما يُنظر إليهما كعلاقات ثنائية على المصطلحات . على سبيل المثال، app ( a . b . nil , c . d . nil ) ≡ a . b . c . d . nilapp ( a . b . c . d . nil , nil ). تقوم خوارزمية التعديل البارامتري بحصر حلول المعادلات بالنسبة إلى E عند تغذيتها بالمثال R.

يُعرض أدناه مثالٌ ناجحٌ لمسار حسابي لمسألة التوحيد { app ( x , app ( y , x )) ≐ a . a . nil }. لتجنب تضارب أسماء المتغيرات، تُعاد تسمية قواعد إعادة الكتابة بشكلٍ متسقٍ في كل مرة قبل استخدامها بواسطة قاعدة mutate ؛ v 2 ، v 3 ، ... هي أسماء متغيرات مُولَّدة حاسوبيًا لهذا الغرض. في كل سطر، تُظلَّل المعادلة المختارة من G باللون الأحمر. في كل مرة تُطبَّق فيها قاعدة mutate ، تُشار إلى قاعدة إعادة الكتابة المختارة ( 1 أو 2 ) بين قوسين. من السطر الأخير، يُمكن الحصول على استبدال التوحيد S = { ynil , xa . nil } . في الواقع، app ( x , app ( y , x )) { ynil , xa . { } = app ( a . nil , app ( nil , a . nil )) ≡ app ( a . nil , a . nil ) ≡ a . app ( nil , a . nil ) ≡ a . a . nil يحل المشكلة المعطاة. هناك مسار حسابي ناجح ثانٍ، يمكن الحصول عليه باختيار "mutate(1), mutate(2), mutate(2), mutate(1)" يؤدي إلى الاستبدال S = { ya . a . nil , xnil }؛ لم يتم عرضه هنا. لا يوجد مسار آخر يؤدي إلى النجاح.

مثال على حساب الموحد
قاعدة مستخدمةجيS
{ app ( x , app ( y , x )) ≐ a . a . nil }{}
mutate(2){ سالخامس 2 . v 3 , التطبيق ( y , x ) ≐ v 4 , v 2 . التطبيق ( v 3 , v 4 ) ≐ أ . أ . لا شيء }{}
تحلل{ سالخامس 2 . v 3 , التطبيق ( y , x ) ≐ v 4 , v 2a , التطبيق ( v 3 , v 4 ) ≐ a . لا شيء }{}
اِسْتَبْعَد{ التطبيق ( y , v 2 . v 3 ) ≐ v 4 , v 2a , التطبيق ( v 3 , v 4 ) ≐ a . لا شيء }{ xv 2 . v 3 }
اِسْتَبْعَد{ التطبيق ( y , a . v 3 ) ≐ v 4 , التطبيق ( v 3 , v 4 ) ≐ a . لا شيء }{ xa . v 3 }
mutate(1){ ذلا شيء , أ . v 3v 5 , v 5v 4 , التطبيق ( v 3 , v 4 ) ≐ أ . لا شيء }{ xa . v 3 }
اِسْتَبْعَد{ ذلا شيء , أ . v 3v 4 , التطبيق ( v 3 , v 4 ) ≐ أ . لا شيء }{ xa . v 3 }
اِسْتَبْعَد{ أ . v 3v 4 , التطبيق ( v 3 , v 4 ) ≐ أ . لا شيء }{ ynil , xa . v 3 }
mutate(1){ أ . v 3v 4 , v 3nil , v 4v 6 , v 6أ . لا شيء }{ ynil , xa . v 3 }
اِسْتَبْعَد{ أ . الخامس 3الخامس 4 , الخامس 3لا شيء , الخامس 4أ . لا شيء }{ ynil , xa . v 3 }
اِسْتَبْعَد{ أ . لا شيءت 4 , ت 4أ . لا شيء }{ ynil , xa . nil }
اِسْتَبْعَد{ a . nila . nil }{ ynil , xa . nil }
تحلل{ aa , nilnil }{ ynil , xa . nil }
تحلل{ nilnil }{ ynil , xa . nil }
تحلل    {}{ ynil , xa . nil }

تضييق

مخطط مثلثي لخطوة التضييق st عند الموضع p في الحد s ، مع استبدال موحد σ (الصف السفلي)، باستخدام قاعدة إعادة الكتابة lr (الصف العلوي)

إذا كان R نظامًا لإعادة كتابة الحدود المتقاربة لـ E ، فإن أحد الأساليب البديلة للقسم السابق يتمثل في التطبيق المتتالي لـ " خطوات التضييق "؛ وهذا سيؤدي في النهاية إلى حصر جميع حلول المعادلة المعطاة. تتكون خطوة التضييق (انظر الصورة) من

  • اختيار حد فرعي غير متغير من الحد الحالي،
  • توحيدها نحويًا مع الجانب الأيسر من قاعدة من R ، و
  • استبدال الجانب الأيمن من القاعدة المُطبقة في المصطلح المُطبق.

بصورة رسمية، إذا كانت lr نسخة مُعاد تسميتها من قاعدة إعادة كتابة من R ، ولا تشترك في أي متغيرات مع الحد s ، وكان الحد الفرعي s | p ليس متغيرًا ويمكن توحيده مع l عبر mgu σ ، فإنه يمكن تضييق s إلى الحد t = [ ] p ، أي إلى الحد sσ ، مع استبدال الحد الفرعي عند p بـ . يُشار عادةً إلى حالة إمكانية تضييق s إلى t بالرمز st . وبشكل بديهي، يمكن اعتبار سلسلة خطوات التضييق t 1t 2 ↝ ... ↝ t n بمثابة سلسلة من خطوات إعادة الكتابة t 1t 2 → ... → t n ، ولكن مع زيادة عدد مرات ظهور الحد الأولي t 1 ، حسب الحاجة لجعل كل قاعدة من القواعد المستخدمة قابلة للتطبيق.

يتوافق حساب التعديل البارامتري المذكور أعلاه مع تسلسل التضييق التالي ("↓" يشير إلى التجسيد هنا):

برنامج (x، تطبيق ( ص ،x))
xv 2 . v 3
برنامج (الإصدار 2. الإصدار 3، تطبيق ( ص ،الإصدار 2. الإصدار 3))الإصدار 2. التطبيق ( الإصدار 3 ، التطبيق (​y، الإصدار 2. الإصدار 3 ) )
ynil
الإصدار 2. التطبيق ( الإصدار 3 ، التطبيق (​لا شيء، الإصدار 2. الإصدار 3 ) )الإصدار 2. التطبيق (​الإصدار 3، الإصدار 2 .الإصدار 3)
v 3لا شيء
الإصدار 2. التطبيق (​لا شيء، الإصدار 2 .لا شيء)الإصدار 2. الإصدار 2. لا شيء​

يمكن توحيد المصطلح الأخير، v 2 . v 2 . nil، نحويًا مع المصطلح الأصلي الموجود على الجانب الأيمن a . a . nil .

تضمن اللمة التضييقية [ 38 ] أنه كلما أمكن إعادة كتابة مثال للمصطلح s إلى مصطلح t بواسطة نظام إعادة كتابة المصطلحات المتقارب، فإنه يمكن تضييق s و t وإعادة كتابتهما إلى مصطلح s و t على التوالي، بحيث يكون t مثالًا على s .

بصورة رسمية: عندما يتحقق t لبعض الاستبدال σ، فإنه توجد حدود s , t بحيث يكون s s و t t و s τ = t لبعض الاستبدال τ.

التوحيد من الدرجة الأعلى

في اختزال غولدفراب [ 39 ] لمسألة هيلبرت العاشرة إلى قابلية التوحيد من الدرجة الثانية، المعادلةX1*X2=X3{\displaystyle X_{1}*X_{2}=X_{3}}يتوافق ذلك مع مشكلة التوحيد الموضحة، مع متغيرات الدالةFأنا{\displaystyle F_{i}}بما يتوافق معXأنا{\displaystyle X_{i}}وجي{\displaystyle G}طازج .

تتطلب العديد من التطبيقات النظر في توحيد حدود لامدا المكتوبة بدلاً من حدود الرتبة الأولى. يُطلق على هذا التوحيد غالبًا اسم التوحيد من الرتبة العليا . التوحيد من الرتبة العليا غير قابل للتقرير ، [ 39 ] [ 40 ] [ 41 ] ولا تمتلك مسائل التوحيد هذه مُوحِّدات عامة. على سبيل المثال، مسألة التوحيد { f ( a , b , a ) ≐ d ( b , a , c ) }، حيث المتغير الوحيد هو f، لها الحلول التالية: { f ↦ λ x .λ y .λ z . d ( y , x , c ) } , { f ↦ λ xy z . d ( y , z , c ) }, { f ↦ λ xyz . d ( y , z , c ) }, { f ↦ λ x .λ y .λ z . d ( y , z , c ) } { d ( y , a , c ) }, { f ↦ λ xyz . d ( b , x , c ) }, { f ↦ λ xyz . d ( b , z , c ) } and { f ↦ λ xyz . d ( b , a , c ) }. يُعدّ توحيد مصطلحات لامدا ذات النوع البسيط، وفقًا للمساواة التي تحددها تحويلات αβη، فرعًا مدروسًا جيدًا من فروع التوحيد من الرتبة العليا. قدّم جيرار هويه خوارزمية شبه قابلة للتقرير (قبل) التوحيد [ 42 ] تسمح بالبحث المنهجي في فضاء الموحدات (تعميمًا لخوارزمية التوحيد لمارتيلي-مونتاناري [ 5 ] مع قواعد للمصطلحات التي تحتوي على متغيرات من الرتبة العليا)، ويبدو أنها تعمل بشكل جيد في التطبيق العملي. هويه [ 43 ] وجيل دويك [ 44 ]لقد كتبت مقالات تتناول هذا الموضوع.

تتميز العديد من المجموعات الفرعية للتوحيد من الرتبة العليا بسلوكها الجيد، إذ أنها قابلة للتقرير ولها موحد عام للمسائل القابلة للحل. ومن هذه المجموعات الفرعية مصطلحات الرتبة الأولى الموصوفة سابقًا. ويُعد توحيد الأنماط من الرتبة العليا ، الذي يعود الفضل فيه إلى ديل ميلر [ 45 ] ، مجموعة فرعية أخرى من هذا القبيل. وقد تحولت لغات البرمجة المنطقية من الرتبة العليا ، λProlog و Twelf، من التوحيد الكامل من الرتبة العليا إلى تنفيذ جزء النمط فقط؛ ومن المثير للدهشة أن توحيد النمط كافٍ لجميع البرامج تقريبًا، إذا تم تعليق كل مسألة لا تخضع لتوحيد النمط حتى يتم استبدالها لاحقًا ليُدمج التوحيد في جزء النمط. كما أن مجموعة فرعية من توحيد النمط تُسمى توحيد الدوال كمنشئات تتميز أيضًا بسلوكها الجيد [ 46 ] . ويحتوي مُثبت نظرية Zipperposition على خوارزمية تُدمج هذه المجموعات الفرعية ذات السلوك الجيد في خوارزمية توحيد كاملة من الرتبة العليا [ 2 ] .

في اللغويات الحاسوبية، تُعدّ نظرية تمثيل الحذف بمتغيرات حرة، تُحدد قيمها باستخدام التوحيد من الرتبة العليا، من أكثر النظريات تأثيرًا في بناء الجمل الحذفية . على سبيل المثال، التمثيل الدلالي لعبارة "جون يحب ماري وبيتر أيضًا" هو like( j , m ) R( p وتُحدد قيمة R (التمثيل الدلالي للحذف) بالمعادلة like( j , m ) = R( j ) . تُسمى عملية حل هذه المعادلات بالتوحيد من الرتبة العليا. [ 47 ]

قدم واين سنايدر تعميمًا لكل من التوحيد من الرتبة العليا والتوحيد E، أي خوارزمية لتوحيد حدود لامدا modulo نظرية المعادلات. [ 48 ]

انظر أيضاً

ملحوظات

  1. مثال: a ⊕ ( b f ( x )) ≡ a ⊕ ( f ( x ) ⊕ b ) ≡ ( b f ( x )) ⊕ a ≡ ( f ( x ) ⊕ b ) ⊕ a
  2. منذ(xy){xz،yz}=zzz{\displaystyle (x\oplus y)\{x\mapsto z,y\mapsto z\}=z\oplus z\equiv z}
  3. منذ ض { ضسذ } = سص
  4. رسميًا: كل موحد τ يرضيx : = ( ) ρ لبعض الاستبدال ρ
  5. استخدم روبنسون التوحيد النحوي من الدرجة الأولى كعنصر أساسي في إجراء حله لمنطق الدرجة الأولى، وهي خطوة كبيرة إلى الأمام في تكنولوجيا الاستدلال الآلي ، حيث أنها قضت على أحد مصادر الانفجار التوافقي : البحث عن تجسيد المصطلحات. [ 14 ]
  6. تم ذكر الاكتشاف المستقل في مارتيلي ومونتاني (1982) القسم 1، صفحة 259. وقد استلم ناشر المجلة باترسون وويغمان (1978) في سبتمبر 1976.
  7. Alg.1، ص 261. قاعدتهم ( أ) تتوافق مع تبديل القاعدة هنا، (ب) للحذف، ) للتفكيك والتعارض،و ( د ) للاستبعاد والتحقق .
  8. على الرغم من أن القاعدة تُبقي x t في G ، إلا أنها لا تستطيع التكرار إلى ما لا نهاية لأن شرطها المسبق x vars ( G ) يُصبح غير صالح عند تطبيقها لأول مرة. وبشكل عام، يُضمن إنهاء الخوارزمية دائمًا، انظر أدناه .
  9. 1 2 في وجود المساواة C ، تكون المتساويتان N l و N r متكافئتين، وكذلك الحال بالنسبة لـ D l و D r

مراجع

  1. دويك، جيل (1 يناير 2001). "التوحيد والمطابقة من الرتبة العليا". دليل الاستدلال الآلي . دار نشر إلسيفير للعلوم، الصفحات 1009-1062 . ISBN  978-0-444-50812-6أُرشف من المصدر الأصلي بتاريخ 15 مايو 2019. تم الاطلاع عليه بتاريخ 15 مايو 2019 .
  2. 1 2 3 فوكميروفيتش، بيتر؛ بنتكامب، ألكسندر؛ نوميلين، فيزا (14 ديسمبر 2021). "التوحيد الكامل الفعال من الرتبة العليا" . الأساليب المنطقية في علوم الحاسوب . 17 (4): 6919. arXiv : 2011.09507 . doi : 10.46298/lmcs-17(4:18)2021 .
  3. آبت، كريستوف ر. (1997). من البرمجة المنطقية إلى برولوج ( الطبعة الأولى المنشورة). لندن - ميونخ: برنتيس هول. ص 24. ISBN   013230368X.
  4. ^ فاجيس، فرانسوا؛ هيوت ، جيرار (1986). "مجموعات كاملة من الموحدين والمطابقات في النظريات المعادلة" . علوم الكمبيوتر النظرية . 43 : 189 – 200. دوى : 10.1016 / 0304-3975 (86)90175-1 .
  5. 1 2 مارتيلي، ألبرتو؛ مونتاناري، أوجو (أبريل 1982). "خوارزمية توحيد فعالة". معاملات ACM في لغات البرمجة والأنظمة . 4 (2): 258-282 . doi : 10.1145/357162.357169 . S2CID 10921306 . 
  6. روبنسون (1965) رقم 2.5، 2.14، ص 25
  7. روبنسون (1965) رقم 5.6، ص 32
  8. روبنسون (1965) رقم 5.8، ص 32
  9. ^ ج. هيربراند: Recherches sur la théorie de la démonstration. Travaux de la société des Sciences et des Lettres de Varsovie ، الدرجة الثالثة، علوم الرياضيات والفيزياء، 33، 1930.
  10. ^ جاك هيربراند (1930). أبحاث حول نظرية المظاهرة (PDF) (أطروحة دكتوراه). أ. المجلد. 1252. جامعة باريس. هنا: ص 96-97
  11. 1 2 كلاوس-بيتر ويرث؛ يورغ سيكمان؛ كريستوف بنزمولر؛ سيرج أوتكسييه (2009). محاضرات عن جاك هيربراند كمنطقي (تقرير SEKI). DFKI. arXiv : 0902.4682 .هنا: صفحة 56
  12. روبنسون، جيه إيه (يناير 1965). "منطق موجه نحو الآلة قائم على مبدأ الاستدلال" . مجلة ACM . 12 (1): 23-41 . doi : 10.1145/321250.321253 . S2CID 14389185 . هنا: القسم 5.8، صفحة 32
  13. جيه إيه روبنسون (1971). "المنطق الحسابي: الحساب الموحد" . الذكاء الآلي . 6 : 63-72 .
  14. ديفيد أ. دافي (1991). مبادئ إثبات النظريات الآلي . نيويورك: وايلي. ISBN 0-471-92784-8.هنا: مقدمة القسم 3.3.3 "التوحيد" ، ص 72.
  15. 1 2 دي شامبو، دينيس (أغسطس 2022). "خوارزمية التوحيد الخطي الأسرع" (ملف PDF) . مجلة الاستدلال الآلي . 66 (4): 845-860 . doi : 10.1007/s10817-022-09635-1 .
  16. ^ بير مارتيلي ومونتاناري (1982) :
  17. بادر، فرانز؛ سنايدر، واين (2001). "نظرية التوحيد" (ملف PDF) . دليل الاستدلال الآلي . الصفحات 445-533 . doi : 10.1016/B978-044450813-3/50010-2 . ISBN  978-0-444-50813-3.
  18. ماكبرايد، كونور (أكتوبر 2003). "التوحيد من الدرجة الأولى عن طريق الاستدعاء الذاتي الهيكلي" . مجلة البرمجة الوظيفية . 13 (6): 1061-1076 . CiteSeerX 10.1.1.25.1516 . doi : 10.1017/S0956796803004957 . ISSN 0956-7968 . S2CID 43523380. تاريخ الاسترجاع: 30 مارس 2012 .   
  19. على سبيل المثال ، باترسون وويغمان (1978)، القسم 2، صفحة 159
  20. "الحساب الصحيح التصريحي" . SWI-Prolog . تم الاطلاع عليه بتاريخ 18 فبراير 2024 .
  21. جوناثان كالدر، ومايك ريب، وهانك زيفات، خوارزمية للتوليد في قواعد اللغة الفئوية الموحدة . في وقائع المؤتمر الرابع للفرع الأوروبي لرابطة اللغويات الحاسوبية، الصفحات 233-240، مانشستر، إنجلترا (10-12 أبريل)، معهد العلوم والتكنولوجيا بجامعة مانشستر، 1989.
  22. غرايم هيرست وديفيد سانت أونج،السلاسل المعجمية كتمثيلات للسياق للكشف عن الأخطاء اللغوية وتصحيحها، 1998.
  23. والثر، كريستوف (1985). "حل ميكانيكي لمسألة المدحلة البخارية لشوبرت باستخدام حل متعدد الأنواع" (ملف PDF) . الذكاء الاصطناعي . 26 (2): 217-224 . doi : 10.1016/0004-3702(85)90029-3 . مؤرشف من الأصل (ملف PDF) بتاريخ 2011-07-08 . تم الاطلاع عليه بتاريخ 2013-06-28 .
  24. سمولكا، جيرت (نوفمبر 1988). البرمجة المنطقية باستخدام أنواع مرتبة متعددة الأشكال (ملف PDF) . ورشة العمل الدولية للبرمجة الجبرية والمنطقية. سلسلة محاضرات في علوم الحاسوب. المجلد 343. سبرينغر. الصفحات 53-70 . doi : 10.1007/3-540-50667-5_58 .  
  25. شميدت-شاوس، مانفريد (أبريل 1988). الجوانب الحسابية لمنطق مُرتب مُرتب مع تعريفات المصطلحات . سلسلة محاضرات في الذكاء الاصطناعي (LNAI). المجلد 395. سبرينغر. 
  26. غوردون د. بلوتكين ، الخصائص النظرية للشبكة للتضمين ، مذكرة MIP-R-77، جامعة إدنبرة، يونيو 1970
  27. مارك إي. ستيكل ، خوارزمية توحيد للدوال التجميعية التبادلية ، مجلة رابطة آلات الحوسبة، المجلد 28، العدد 3، الصفحات 423-434، 1981
  28. 1 2 3 ف. فاجيس (1987). "التوحيد الترابطي-التبديلي" (ملف PDF) . مجلة الحوسبة الرمزية . 3 (3): 257-275 . doi : 10.1016/s0747-7171(87)80004-4 . S2CID 40499266 . 
  29. فرانز بادر، التوحيد في أنصاف المجموعات المتساوية القوة هو من النوع صفر ، مجلة الاستدلال الآلي، المجلد 2، العدد 3، 1986
  30. ج. ماكانين، مشكلة قابلية حل المعادلات في شبه مجموعة حرة ، أكاديمية العلوم في الاتحاد السوفيتي، المجلد 233، العدد 2، 1977
  31. مارتن، يو.، نيبكو، تي. (1986). "التوحيد في الحلقات البوليانية". في يورغ هـ. سيكمان (محرر). وقائع المؤتمر الثامن لـ CADE . سلسلة محاضرات في علوم الحاسوب. المجلد 230. سبرينغر. الصفحات 506-513 .  {{cite book}}: صيانة CS1: أسماء متعددة: قائمة المؤلفين ( رابط )
  32. أ. بوديه؛ ج. ب. جوانو؛ م. شميدت-شاوس (1989). "توحيد الحلقات البولية والمجموعات الأبيلية" . مجلة الحساب الرمزي . 8 (5): 449-477 . doi : 10.1016/s0747-7171(89)80054-9 .
  33. 1 2 بادر وسنايدر (2001)، ص. 486.
  34. F. Baader and S. Ghilardi, Unification in modal and description logics , Logic Journal of the IGPL 19 (2011), no. 6, pp. 705–730.
  35. ^ P. Szabo، Unifikationstheorie erster Ordnung ( نظرية التوحيد من الدرجة الأولى )، أطروحة، جامعة. كارلسروه، ألمانيا الغربية، 1982
  36. يورغ هـ. سيكمان، التوحيد الشامل ، وقائع المؤتمر الدولي السابع حول الاستدلال الآلي، سلسلة محاضرات سبرينغر في علوم الحاسوب، المجلد 170، الصفحات 1-42، 1984
  37. ن. ديرشوفيتز وج. سيفاكومار، حل الأهداف في اللغات المعادلة ، وقائع ورشة العمل الدولية الأولى حول أنظمة إعادة كتابة المصطلحات الشرطية، سلسلة محاضرات سبرينغر في علوم الحاسوب، المجلد 308، الصفحات 45-55، 1988
  38. فاي (1979). "التوحيد من الدرجة الأولى في نظرية المعادلات". وقائع ورشة العمل الرابعة حول الاستدلال الآلي . الصفحات 161-167 . 
  39. 1 2 وارن د. غولدفراب (1981). "عدم قابلية حسم مسألة التوحيد من الدرجة الثانية" . TCS . 13 (2): 225–230 . doi : 10.1016/0304-3975(81)90040-2 .
  40. جيرار ب. هويه (1973). "عدم قابلية الحسم في التوحيد في منطق الرتبة الثالثة" . المعلومات والتحكم . 22 (3): 257-267 . doi : 10.1016/S0019-9958(73)90301-X .
  41. كلاوديو لوتشيسي: عدم قابلية حل مشكلة التوحيد للغات من الدرجة الثالثة (تقرير بحثي CSRR 2059؛ قسم علوم الحاسوب، جامعة واترلو، 1972)
  42. جيرار هويه: (1 يونيو 1975) خوارزمية توحيد لحساب لامدا المكتوب ، علوم الحاسوب النظرية
  43. ^ جيرار هويت: توحيد النظام الأعلى بعد 30 عامًا
  44. جيل دويك: التوحيد والمطابقة من الرتبة العليا. دليل الاستدلال الآلي 2001: 1009-1062
  45. ميلر، ديل (1991). "لغة برمجة منطقية مع تجريد لامدا، ومتغيرات الدوال، وتوحيد بسيط" (ملف PDF) . مجلة المنطق والحوسبة . 1 (4): 497-536 . doi : 10.1093/logcom/1.4.497 .
  46. ليبال، تومر؛ ميلر، ديل (مايو 2022). "توحيد الدوال كبنى من الرتبة العليا: توحيد الأنماط الموسع" . حوليات الرياضيات والذكاء الاصطناعي . 90 (5): 455-479 . doi : 10.1007/s10472-021-09774-y .
  47. غاردنت، كلير ؛ كولهاس، مايكل ؛ كونراد، كارستن (1997). "نهج توحيد متعدد المستويات من الرتبة العليا للحذف". مُقدَّم إلى الرابطة الأوروبية للغويات الحاسوبية (EACL) . CiteSeerX 10.1.1.55.9018 . 
  48. واين سنايدر (يوليو 1990). "التوحيد الإلكتروني من الرتبة العليا". وقائع المؤتمر العاشر حول الاستدلال الآلي . سلسلة محاضرات في الذكاء الاصطناعي. المجلد 449. سبرينغر. الصفحات 573-587 .  

للمزيد من القراءة