Hình 3-1 mô tả kiến trúc tổng quan của Z3 [6].
Simplifier – Bộ giản hóa : Biểu thức đầu vào trƣớc tiên đƣợc xử lý thông qua bộ giản hóa. Bộ giản hóa này sẽ áp dụng một số quy tắc giảm bớt đại số chuẩn nhƣ: P true -> P.
Compiler – Bộ biên dịch: Cấu trúc dạng cây đơn giản khi qua bộ giản hóa đƣợc chuyển về một cấu trúc khác bao gồm các mệnh đề và các nút (node).
Congruence Closure core – Lõi kết thúc tƣơng đẳng: Sẽ nhận các lệnh thực sự từ công cụ tìm lời giải SAT đến các nguyên tử (atoms). Các nguyên tử sẽ đƣợc phân loại trên các đẳng thức và các biểu thức nguyên tử, nhƣ bất đẳng thức số học. Các đẳng thức đƣợc xác nhận bởi SAT sẽ đƣợc mở rộng bằng lõi kết thúc tƣơng đẳng, và sử dụng một cấu trúc dữ liệu gọi là lƣợc đồ E ( E-graph)[3]. Mỗi một nút trong lƣợc đồ này sẽ trỏ vào một công cụ tìm lời giải lý thuyết ( Theory Solver).
Hình 3.1: Kiến trúc của Z3
Theory Combination - Phối hợp lý thuyết: Các phƣơng thức truyền thống cho việc phối hợp các lý thuyết dựa trên khả năng của các công cụ tìm lời giải để đƣa ra đƣợc các đẳng thức gợi ý hoặc các bƣớc tiền xử lý, sau đó giới thiệu các công thức nguyên tử bổ xung vào không gian tìm kiếm. Z3 sử dụng một phƣơng pháp mới để phối hợp lý thuyết.
SAT Solver: SAT tích hợp các phƣơng pháp tìm kiếm lƣợc bớt chuẩn nhƣ học lema sử dụng các mệnh đề mâu thuẫn, caching giai đoạn để hƣớng dẫn việc chia các trƣờng hợp.