เอ็นจิ้นการปิดความสอดคล้องของ Z3 เป็นองค์ประกอบสำคัญของตัวแก้ปัญหาซึ่งรับผิดชอบในการรักษาระดับความเท่าเทียมกันของคำศัพท์ตามความเท่าเทียม มันทำให้มั่นใจได้ว่าหากพบว่าสองคำมีค่าเท่ากันพวกเขาจะได้รับการปฏิบัติที่เทียบเท่าตลอดกระบวนการแก้ปัญหา นี่คือวิธีการทำงาน:
1. การเริ่มต้นและโครงสร้างข้อมูล: เครื่องยนต์ใช้โครงสร้างข้อมูลที่เรียกว่า e-nodes เพื่อแสดงคำในสูตร แต่ละอิเล็กทรอนิกส์มีฟิลด์ที่ช่วยในการใช้การดำเนินงานของสหภาพแรงงานซึ่งเป็นสิ่งสำคัญสำหรับการจัดการคลาสที่เท่าเทียมกัน เครื่องยนต์ใช้ตารางแฮชที่รู้จักกันในชื่อ etable เพื่อแมปแอปพลิเคชันฟังก์ชั่นกับรากการปิดความสอดคล้องของพวกเขา [1] [3]
2. การดำเนินการของสหภาพ-ค้นหา: เครื่องมือปิดความสอดคล้องดำเนินการดำเนินการสหภาพค้นหาได้อย่างมีประสิทธิภาพโดยใช้การบีบอัดเส้นทางและสหภาพตามอันดับ สิ่งนี้ทำให้มั่นใจได้ว่าการเข้าถึงรูทของคลาสที่เทียบเท่านั้นรวดเร็วและการรวมคลาสที่เล็กกว่าเข้ากับคลาสที่มีขนาดใหญ่กว่านั้นมีประสิทธิภาพ [1]
3. การตรวจจับความเท่าเทียม: เมื่อตัวแก้ปัญหาความเท่าเทียมกันระหว่างคำศัพท์เครื่องยนต์ปิดความสอดคล้องจะตรวจสอบว่าคำเหล่านี้เป็นของระดับความเท่าเทียมกันเดียวกันหรือไม่ ถ้าไม่รวมชั้นเรียนของพวกเขาเพื่อให้มั่นใจว่าคำศัพท์ทั้งหมดในชั้นเรียนที่ผสานถือว่าเท่ากัน [3] [4]
4. การรวมเข้ากับการให้เหตุผลแบบบูลีน: เอ็นจิ้นการปิดความสอดคล้องนั้นถูกรวมเข้ากับแกนความน่าพอใจของบูลีนอย่างแน่นหนาของ Z3 มันช่วยในการเผยแพร่ความเท่าเทียมและตรวจจับความไม่พอใจโดยมั่นใจว่าคำศัพท์ที่เท่าเทียมกันได้รับการปฏิบัติอย่างต่อเนื่องในสูตร [5]
5. การแก้ปัญหาความขัดแย้ง: ในบริบทของ CDCL (t) (การเรียนรู้ประโยคที่มีความขัดแย้งกับทฤษฎี) เครื่องมือปิดความสอดคล้องกันมีบทบาทในการแก้ไขข้อขัดแย้งโดยการทำให้มั่นใจว่าความเท่าเทียมจะถูกนำไปใช้อย่างต่อเนื่องในระหว่างการค้นหาการมอบหมายที่น่าพอใจ ของความไม่พอใจ [1]
โดยรวมแล้วเอ็นจิ้นการปิดความสอดคล้องของ Z3 เป็นสิ่งจำเป็นสำหรับการจัดการความเท่าเทียมอย่างมีประสิทธิภาพและทำให้มั่นใจได้ว่าผู้แก้ปัญหาปฏิบัติต่อเงื่อนไขที่เท่าเทียมกันอย่างสม่ำเสมอซึ่งเป็นสิ่งสำคัญสำหรับการแก้สูตรที่ซับซ้อนที่เกี่ยวข้องกับทฤษฎีหลายทฤษฎี
การอ้างอิง:[1] https://z3prover.github.io/papers/z3internals.html
[2] https://www.researchgate.net/publication/266654073_Z3-STR_A_Z3- บนพื้นฐาน
[3] https://www.cs.purdue.edu/homes/xyzhang/comp/fse13.pdf
[4] https://www.csl.sri.com/~tiwari/papers/thesis.pdf
[5] https://ceur-ws.org/vol-418/paper10.pdf
[6] https://theory.stanford.edu/~nikolaj/programmingz3.html
[7] https://arxiv.org/pdf/2209.03398.pdf
[8] http://algos.inesc.pt/projects/nanotime/ref12.pdf