Первый аргумент строки - это имя строки, которую вы определяете символически.
Вместо использования
a:=line([1,-1,-1],[0,0,1]):
b:=line([1,1,1],[0,-1,0]):
Попробуйте вместо этого:
with(geom3d):
point(p1,[1,-1,-1]):
point(p2,[0,0,1]):
point(p3,[1,1,1]):
point(p4,[0,-1,0]):
line(l1,[p1, p2]):
line(l2,[p3, p4]):
intersection(P,l1,l2):
coordinates(P)
См. Справку по пересечениям и линии для получения более подробной информации.