การเขียนคำใหม่ คำนวณคู่ที่สำคัญ


10

ฉันพยายามที่จะแก้ปัญหาการออกกำลังกายต่อไปนี้ แต่ฉันก็ติดในขณะที่พยายามหาคู่ที่สำคัญทั้งหมด

ฉันมีคำถามต่อไปนี้:

  1. ฉันจะรู้ได้อย่างไรว่าคู่วิกฤตินั้นสร้างกฎใหม่
  2. ฉันจะรู้ได้อย่างไรว่าฉันพบคู่ที่สำคัญทั้งหมดแล้ว

ปล่อย Σ={∘,i,e} ที่ไหน ∘ เป็นไบนารี i เป็นเอกภาพและ e เป็นค่าคงที่

E={(x∘y)∘z≈x∘(y∘z)x∘e≈xx∘i(x)≈e}

งานของฉันจนถึงตอนนี้:

  1. x∘e>lpox   (LPO 1)   x เป็นตัวแปร

    x∘i(x)>lpoe   (LPO 2b) ไม่มีข้อกำหนดอยู่ทางด้านขวามือ

    (x∘y)∘z≈x∘(y∘z)

    s=∘(∘(x,y)s1,zs2)t=∘(xt1,∘(y,z)t2)     (LPO 2c)

    • ตรวจสอบว่า s>tj, j=1,m¯

      s>lpot1     (LPO 1)

      เพื่อพิสูจน์ว่าs>lpot2 (LPO 2c) เราพิสูจน์ได้ว่า
      s>lpoy(LPO 1);s>lpoz(LPO 1);∘(x,y)>y(LPO 1)
    • หา i ดังนั้น si>lpoti     i=1
      ∘(x,y)>lpox(LPO 1)

    (x∘y)∘z>lpox∘(y∘z)

  2. a. (x∘y)∘z→x∘(y∘z)

    x1∘e→x1

    x∘y=?x1∘e

    θ{x←x1;y←e}

    (x1∘e)∘z→x1∘z↓↓x1∘(e∘z)→e∘z≈zleft identity?

    b c (x∘y)∘z→x∘(y∘z)

    e∘x1→x1

    x∘y=?e∘x1

    θ{x←e;y←x1}
    (e∘x1)∘z→x1∘z↓↓e∘(x1∘z)→?

    (x∘y)∘z→x∘(y∘z)

    x1∘i(x1)→e

    x∘y=?x1∘i(x1)

    θ{x←x1;y←i(x1)}
    (x1∘i(x1))∘z→e∘z↓↓x1∘(i(x1)∘z)→?

ในฐานะที่เป็นเอกสารสนับสนุนฉันมี"การเขียนซ้ำระยะและสิ่งนั้น"โดย Franz Baader และ Tobias Nipkow

( ภาพต้นฉบับที่นี่ )

EDIT1

หลังจากค้นหาคู่ที่สำคัญฉันมีชุดของกฎต่อไปนี้ (สมมติว่า 2.a คือ corect):

E={(x∘y)∘z≈x∘(y∘z)x∘e≈xx∘i(x)≈ex∘(i(x)∘y)≈yx∘(y∘i(x∘y))≈ee∘x≈xe∘(x∘y)≈x∘y}

@MartinSleziak ฉันหมายความว่าเอกสารที่ฉันใช้ในการแก้ปัญหาคือ Term Rewriting and All That "โดย Franz Baader และ Tobias Nipkow และจากนั้นความคิดและรูปแบบสัญกรณ์มาจากที่นั่น
— Alexandru Cimpanu

1
ฉันไม่แน่ใจว่าสิ่งนี้จะช่วยคุณในทางใดทางหนึ่งหรือไม่ แต่การค้นหา"คู่วิกฤติ" "การเขียนคำใหม่" "กลุ่มสัจพจน์"นำไปสู่สไลด์บางส่วนที่พูดถึงจุดวิกฤติของระบบของคุณ (หรืออย่างน้อยระบบที่คล้ายกันมาก) ดูที่นี่หรือที่นี่
— มาร์ติน

@MartinSleziak ฉันได้ดูสไลด์พวกเขาอาจมีประโยชน์ ณ จุดนี้ฉันเป็นราชาแห่งการดิ้นรนกับหนังสือเล่มนี้ ฉันกำลังลองแนวคิดบางอย่าง ขอขอบคุณสำหรับความช่วยเหลือของคุณ.
— Alexandru Cimpanu

คำตอบ:


5

ก่อนที่จะตอบคำถามที่เกิดขึ้นจริงหนึ่งข้อสังเกตเกี่ยวกับงานของคุณจนถึงตอนนี้: การยกเลิกทางด้านซ้ายใน 2.a ไม่ถูกต้องโดยทั่วไปคู่ที่สำคัญก็จะเป็นZ ดังนั้นคุณจะไม่ได้รับคู่ที่สำคัญ 2.b. ปัญหาของการยกเลิกนี้คือสมการที่คุณได้รับนั้นโดยทั่วไปไม่ได้ติดตามจากสัจพจน์ที่คุณเริ่มต้น ตัวอย่างเช่นหากคุณกำลังทำงานในภาษาของวงคุณอาจจะได้รับคู่ที่สำคัญแต่มันจะไม่ถูกต้องที่จะอนุมาน (ซึ่งหมายความว่าคุณมีเพียง แบบจำลองเล็กน้อย) ไม่มีขั้นตอนการเขียนใหม่เสียงรวมถึง Huet ควรอนุญาตให้มีการลดลงนี้x∘(e∘z)≈x∘z0∗x≈0∗yx≈y

ในทางกลับกันคุณจะหายไปจากคู่ที่สำคัญที่คุณได้รับโดยการรวม (รุ่นที่เปลี่ยนชื่อตัวแปร)หรือกับทั้งหมดของ (เช่นการใช้ วินาที ) คู่วิกฤติที่เกิดขึ้นคือx∘ex∘i(x)(x∘y)∘z∘

  • x∘(y∘e)←(x∘y)∘e→x∘yซึ่งหลังจากการลดกลายเป็นสมการที่น่ารำคาญและx∘y≈x∘y
  • x∘(y∘i(x∘y))←(x∘y)∘i(x∘y)→eซึ่งไม่สามารถลดลงได้อีกและให้กฎ (สมมติว่าในลำดับความสำคัญใช้เพื่อกำหนด LPO เช่นเดียวกับที่คุณทำเมื่อปรับทิศทาง )x∘(y∘i(x∘y))→e∘▹e▹x∘i(x)≈e

สำหรับขั้นตอนเสร็จสิ้นขั้นพื้นฐาน:

  1. เมื่อใดก็ตามที่คุณสร้างคู่ที่สำคัญคุณจะลดทั้งสองด้านเท่าที่จะทำได้โดยใช้ชุดของกฎปัจจุบัน หากฟอร์มปกติที่ได้ผลลัพธ์ไม่เท่ากันคุณสร้างกฎใหม่ ตัวอย่างเช่น 2.c ของคุณ ให้กฎใหม่Z ในทางกลับกันการรวมกับให้คู่วิกฤติซึ่งสามารถลดลงได้เล็กน้อยและถูกละทิ้งx∘(i(x)∘z)→e∘z(x∘y)∘zx1∘y1(x∘y)∘(z∘z1)←((x∘y)∘z)∘z1→(x∘(y∘z))∘z1x∘(y∘(z∘z1))≈x∘(y∘(z∘z1))
  2. เมื่อใดก็ตามที่คุณสร้างกฎใหม่คุณจะต้องพิจารณาคู่ที่สำคัญทั้งหมดระหว่างมันกับกฎที่มีอยู่ตรวจสอบ unifiability ของกับแต่ละ subterm ที่ไม่ใช่ตัวแปรของและ ในทางกลับกัน นอกจากนี้อย่าลืมตรวจสอบการทับซ้อนด้วยตนเองเช่น unifiability ของกับ subterms ของตัวเองดังที่เราได้ทำการเชื่อมโยง คุณหยุดเฉพาะเมื่อคู่ที่สำคัญทั้งหมดของกฎที่มีอยู่ได้รับการตรวจสอบและสร้างกฎใหม่หรือถูกยกเลิกl→rl1→r1,…,ln→rnllil

ขั้นตอนนี้สามารถปรับปรุงได้ไม่น้อย โดยเฉพาะอย่างยิ่งคุณสามารถใช้กฎใหม่เพื่อทำให้กฎเก่าง่ายขึ้น (และอาจละทิ้งกฎเหล่านั้นหากพวกเขากลายเป็นเรื่องไม่สำคัญซึ่งหมายความว่ากฎเหล่านั้นถูกรวมเข้ากับกฎใหม่) และฮิวริสติกที่ดีสำหรับการเลือกคู่วิกฤติครั้งต่อไป ปริมาณของกฎ


เราสามารถสร้างความเรียบง่ายอย่างเช่น 2.a เมื่อพูดถึงขั้นตอนการทำให้สมบูรณ์ของ Huet ได้หรือไม่?
— Alexandru Cimpanu

คุณจะทำอย่างไร Unify x∘eหรือx∘i (x) ที่มีทั้งหมดของ (x∘y) ∘z (เช่นใช้สอง∘) ?
— Alexandru Cimpanu

เกี่ยวกับการทำให้เข้าใจง่าย, ที่ 2.a, มันทำที่คลาส, ดังนั้นมันต้องมีตรรกะบางอย่างอยู่ข้างหลังมัน
— Alexandru Cimpanu

คุณอาจรักษาระบบสมการตามเงื่อนไขและสัจพจน์ของคุณรวมการยกเลิกได้ ( ) นั่นคือขั้นตอนที่คุณทำใน 2.a และถ้าเป็นจริงโดยความจริงคุณก็ทำได้ แม้จะเป็นทางลัดแม้ว่า - พูดอย่างเคร่งครัดก่อนอื่นคุณจะได้สมการที่ไม่ได้ลดทอนจากนั้นให้ได้สมการที่ลดลงผ่านสมการที่มีเงื่อนไขแล้วกำจัดอันที่ไม่ได้ลดทอน x∗y=x∗z⇒y=z
— Klaus Draeger

ฉันไม่รู้ ฉันคิดว่าเกี่ยวข้องกับขั้นตอนการดำเนินการขั้นสูง (ซึ่งฉันไม่คุ้นเคย) สมมติว่า 2.a ถูกต้องฉันแก้ไขคำถามเพื่อโพสต์กฎใหม่ที่ได้รับ
— Alexandru Cimpanu
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.