คำนิยาม
คำจำกัดความ 1 : ให้เป็นชุดของคำ เรากล่าวว่าเป็นอย่างไม่มีที่สิ้นสุดคำนำหน้าฟรี (ขึ้นชื่อสำหรับวัตถุประสงค์ของคำตอบนี้) ถ้ามีคำและดังกล่าวว่า:SSU 0 , ... , U n , ... วี1 , ... , V n , ...u0,…,un,…v1,…,vn,…
สำหรับแต่ละ ,และไม่ว่างเปล่าและเริ่มต้นด้วยตัวอักษรที่แตกต่างกัน;n≥1unvn
S={u0v1,…,u0…unvn+1,…}\}
สัญชาตญาณคือคุณสามารถใส่คำเหล่านั้นทั้งหมดลงบนต้นไม้ที่หยั่งรากไม่สิ้นสุด ( ■
คือราก, ▲
เป็นใบและส่วน•
ที่เหลือเป็นโหนดตกแต่งภายใน) ของรูปทรงดังต่อไปนี้ซึ่งคำในเป็นป้ายกำกับของเส้นทาง จากรากถึงใบไม้:S
u₀ u₁ u₂
■-----•-----•-----•⋅⋅⋅
| | |
| v₁ | v₂ | v₃
| | |
▲ ▲ ▲
ข้อเสนอที่ 1.1 : ชุดที่ไม่มีคำนำหน้าไม่มีที่สิ้นสุดไม่มีคำนำหน้า
หลักฐานของข้อเสนอ 1.1 : สมมติว่าเป็นคำนำหน้าอย่างเข้มงวดของ1} มีสองกรณี:u0…unvn+1u0…umvm+1
ถ้าแล้วเป็นคำนำหน้าของ1} สิ่งนี้เป็นไปไม่ได้เนื่องจากและมีตัวอักษรแรกที่แตกต่างกันn<mvn+1un+1…umvm+1un+1vn+1
ถ้าแล้วเป็นคำนำหน้าของ1} สิ่งนี้เป็นไปไม่ได้เนื่องจากและมีตัวอักษรแรกที่แตกต่างกันn>mum+1…unvn+1vm+1um+1vm+1
ข้อเสนอที่ 1.2 : ชุดคำนำหน้าฟรีที่ไม่มีที่สิ้นสุดไม่มีที่สิ้นสุด
หลักฐานการเสนอ 1.2 : ในข้อ 1.1 เราพบว่าหากดังนั้นและไม่สามารถเทียบเคียงได้กับคำนำหน้า พวกเขาจึงไม่เท่ากันn≠mu0…unvn+1u0…umvm+1
หลักฐานหลัก
ข้อเสนอที่ 2 : ชุดคำนำหน้าฟรีที่ไม่มีที่สิ้นสุดใด ๆ มีชุดคำนำหน้าฟรีที่ดีไม่มีที่สิ้นสุด
ข้อเสนอที่ 3 : ภาษาที่มีชุดคำนำหน้าฟรีที่ไม่มีที่สิ้นสุดถ้าหากมันมีชุดคำนำหน้าฟรีที่ไม่มีที่สิ้นสุดอย่างดี
พิสูจน์ด้านล่าง
หลักฐานการเสนอ 3 :โดยข้อเสนอ 2ตามข้อเสนอ 1.1 และ 1.2⇒⇐
ข้อเสนอที่ 4 : ชุดย่อยส่วนย่อยที่ไม่มีคำนำหน้าของภาษาปกติ (เข้ารหัสเป็นคำไม่สิ้นสุด ) คือ -regular (และขนาดของBüchi Automaton ที่รับรู้ว่าเป็นพหุนามในขนาดของ NFA ที่ใช้ภาษาปกติ)u0¯¯¯¯¯v1ˆu1¯¯¯¯¯v2ˆu2¯¯¯¯¯…ω
พิสูจน์ด้านล่าง
ทฤษฎีบทที่ 5 : การตัดสินใจว่าภาษาปกติที่อธิบายโดย NFA มีชุดย่อยที่ไม่มีคำนำหน้าไม่มีที่สิ้นสุดสามารถทำได้ในเวลาพหุนามในขนาดของ NFA
ข้อพิสูจน์ทฤษฎีบทที่ 5 : โดยข้อเสนอ 3 มันเพียงพอที่จะทดสอบว่ามันมีส่วนย่อยของคำนำหน้าฟรีที่ไม่มีที่สิ้นสุดซึ่งสามารถทำได้ในเวลาพหุนามโดยการสร้างหุ่นยนต์Büchiที่ได้รับจากข้อเสนอ 4 และทดสอบความว่างเปล่าของมัน ภาษา (ซึ่งสามารถทำได้ในเวลาเชิงเส้นในขนาดของBüchiหุ่นยนต์)
หลักฐานการเสนอ 2
บทที่ 2.1 : ถ้าเป็นชุดคำนำหน้าฟรีดังนั้นจึงเป็น (สำหรับคำใด ๆ ที่ )Sw−1Sw
หลักฐานที่ 2.1 : ตามคำจำกัดความ
บทแทรก 2.2 : ให้เป็นชุดคำที่ไม่มีที่สิ้นสุด Letเป็นคำนำหน้าทั่วไปที่ยาวที่สุดกับคำทั้งหมดในSและมีจำนวนนับเท่ากันSw:=lcp(Sn)SSw−1S
หลักฐาน 2.2 : กำหนดโดยfมันถูกกำหนดไว้อย่างดีโดยความหมายของ , นึงโดยความหมายของและ surjective โดยความหมายของWf:w−1S→Sf(x)=wxw−1Sfw
ข้อพิสูจน์ที่ 2 : เราสร้างและโดยการเหนี่ยวนำที่โดยมีสมมติฐานการเหนี่ยวนำประกอบด้วยส่วนต่าง ๆ ดังต่อไปนี้:unvnnHn
(P1)สำหรับ , ;k∈{1,…,n}u0…uk−1vk∈S
(P2)สำหรับ ,และทั้งหมดไม่ว่างเปล่าและเริ่มต้นด้วยตัวอักษรที่แตกต่างกัน;k∈{1,…,n}ukvk
(P3) Sn:=(u0…un)−1Sไม่มีที่สิ้นสุด
(P4)ไม่มีไม่ว่างเปล่าคำนำหน้าร่วมกันเพื่อทุกคำคือS_nในคำอื่น ๆ : ไม่มีตัวอักษรเป็นดังกล่าวว่า *SnaSn⊆aΣ∗
หมายเหตุ 2.3 : ถ้าเรามีลำดับที่ตรวจสอบโดยไม่ต้อง , เราสามารถปรับเปลี่ยนจะทำให้พวกเขายังตอบสนอง(P_4)อันที่จริงก็พอเพียงที่จะแทนที่โดย(S_n) ไม่ได้รับผลกระทบ ไม่สำคัญ เป็นการก่อสร้าง โดย lemma 3Hn(P4)un(P4)ununlcp(Sn)(P1)(P2)(P4)(P3)
ตอนนี้เราสร้างลำดับโดยการเหนี่ยวนำใน :n
การกำหนดค่าเริ่มต้น:เป็นจริงโดยการใช้ (เช่นโดยการใช้และใช้หมายเหตุ 3.1)H0u0:=lcp(S)u0:=ε
ขั้นตอนการเหนี่ยวนำ: สมมติว่าเรามีคำและดังกล่าวว่าสำหรับบางnเราจะสร้างและเช่นว่า1}u1,…,unv1,…,vnHnnun+1vn+1Hn+1
ตั้งแต่เป็นอนันต์และคำนำหน้าฟรี (โดยแทรก 1), มันไม่ได้มีเพื่อให้*) ตั้งแต่เป็นอนันต์มีความเป็นตัวอักษรดังกล่าวว่าเป็นอนันต์ โดยมีตัวอักษรแตกต่างจากดังกล่าวว่าเป็นไม่ว่างเปล่า เลือก * การจะเป็นจะตอบสนอง ,และSnεSn=⨆a∈Σ(Sn∩aΣ∗)SnaSn∩aΣ∗(P4)baSn∩bΣ∗vn+1∈Sn∩bΣ∗un+1a(P1)(P2)(P3)ดังนั้นเราจึงใช้คำพูดที่จะได้รับ 3.1 :S_n)(P4)un+1:=alcp(a−1Sn)
(P1) u1…unvn+1∈u1…un(Sn∩bΣ∗)⊆SS
(P2)ตามคำนิยามของและ1}un+1vn+1
(P3) a−1Snนั้นไม่มีที่สิ้นสุดตามคำจำกัดความของและจึงไม่มีที่สิ้นสุดโดย lemma 3aSn+1
(P4)ตามคำนิยามของ1}un+1
หลักฐานข้อเสนอ 4
หลักฐานการเสนอ 4 : ให้เป็น NFAA=(Q,→,Δ,q0,F)
แนวคิดมีดังต่อไปนี้: เราอ่านจำไว้ว่าเราอยู่ที่ไหนอ่านย้อนกลับไปที่ที่เราอ่านหลังจากอ่านจำว่าเราอยู่ที่ไหน ... เรายังจำตัวอักษรตัวแรกที่อ่านในแต่ละเพื่อให้แน่ใจว่าเริ่มต้นด้วยตัวอักษรอื่นu0v1u0u1vnun
ฉันได้รับการบอกว่านี่อาจเป็นเรื่องง่ายขึ้นกับออโตมาหลายหัว แต่ฉันไม่คุ้นเคยกับพิธีการดังนั้นฉันจะอธิบายโดยใช้ออโตเมติกBüchi (มีเพียงหัวเดียว)
เราตั้งค่าโดยที่สัญลักษณ์ overlined จะถูกใช้เพื่ออธิบาย s และสัญลักษณ์ที่มีหมวกสำหรับ sΣ′:=Σ¯¯¯¯⊔Σˆukvk
เราตั้งค่าโดยที่:Q′:=Q×({⊥}⊔(Q×Σ))
(q,⊥)หมายความว่าคุณกำลังอ่าน ;un
(q,(p,a))หมายความว่าคุณอ่านบางส่วนในสถานะแล้วตอนนี้คุณกำลังอ่านที่เริ่มต้นด้วยและเมื่อคุณทำเสร็จแล้วคุณจะกลับไปที่อ่านที่ไม่ได้เริ่มต้นด้วยunpvn+1apun+1a
เราตั้งเพราะเราเริ่มต้นด้วยการอ่านu_0q′0:=(q0,⊥)u0
เรากำหนดเป็น\F′F×Q×Σ
ชุดของการเปลี่ยนถูกกำหนดดังนี้:→′
" " สำหรับการเปลี่ยนแต่ละครั้ง , เพิ่ม ;unq→aq′(q,⊥)→′a¯¯¯(q′,⊥)
"ถึง " สำหรับการเปลี่ยนแปลงแต่ละครั้ง , เพิ่ม ;unvn+1q→aq′(q,⊥)→′aˆ(q′,(q,a))
" " สำหรับการเปลี่ยนแต่ละครั้ง , เพิ่ม ;vnq→aq′(q,(p,a))→′aˆ(q′,(p,a))
"ถึง " สำหรับการเปลี่ยนแปลงแต่ละครั้งโดยที่เป็นครั้งสุดท้ายและตัวอักษรแตกต่างจากเพิ่ม ;vnunp→ap′pba(q,(p,b))→′a¯¯¯(p′,⊥)
บทแทรก 4.1 :ได้รับการยอมรับโดย iff สำหรับแต่ละ ,และเป็นไม่ว่างเปล่าและเริ่มต้นด้วยตัวอักษรที่แตกต่างกันและสำหรับแต่ละ ,(A)u0¯¯¯¯¯v1ˆu1¯¯¯¯¯v2ˆ…un¯¯¯¯¯vn+1ˆ 'n≥1UnVnn≥0U0...UnVn+1∈L()A′n≥1unvnn≥0u0…unvn+1∈L(A)
หลักฐานของบทแทรก 4.1 : จากซ้ายไปยังเครื่องอ่าน