我试图自动证明/反驳一些与正方形相关的几何定理,例如“对于每 3 个 7 个不相交正方形的集合,可以从每个集合中选择 1 个正方形,使得 3 个代表是内部不相交的?”。
我尝试使用OpenGeoProver并得出以下正方形描述:
<!-- define a 'free' point - the south-western corner of the square: -->
<pfree label="square1southwest"/>
<!-- define a line that is parallel to the x axis and goes throught that point - the southern boundary: -->
<lparallel label="square1south" point="square1southwest" baseline="xaxis" />
<!-- define a random point on the southern line, which will be the south-eastern corner: -->
<prandline label="square1southeast" line="square1south" />
<!-- rotate the south-eastern corner 90 degrees around the south-western corner, to create the north-western corner: -->
<protated label="square1northwest" origpt="square1southeast" center="square1southwest" angmeasure="-90"/>
<!-- translate the north-western corner by the vector between the two southern corners, to create the north-eastern corner of the square: -->
<ptranslated label="square1northeast" origpt="square1northwest" point1="square1southwest" point2="square1southeast"/>
这就是我卡住的地方:如何定义简单的语句“正方形 A 和正方形 B 相交”?
在 Z3 中如何解决这个问题?