### symbolic 2x2 block matrix inversion

Is it possible in SAGE to get the 2x2 block matrix inversion described in Wikipedia?

I looked at this question about the determinant of block matrices, and at this question about symbolic matrices, and tried the following code on the cloud:

`A = matrix(SR, 2, 2, 'a1 a2 a3 a4'.split(' `~~'))~~'))
~~ ~~B = matrix(SR, 2, 2, 'b1 b2 b3 b4'.split(' ~~'))~~

'))
~~ ~~C = matrix(SR, 2, 2, 'c1 c2 c3 c4'.split(' ~~'))~~

'))
~~ ~~D = matrix(SR, 2, 2, 'd1 d2 d3 d4'.split(' ~~'))~~

'))
~~ ~~M = block_matrix(SR, 2, 2, [A, B, C, ~~D])~~

D])
~~ ~~Mi = ~~M.inverse()~~

M.inverse()
~~ ~~Mi.simplify_rational()

```
Mi.simplify_rational()
```

But it doesn't seem to be able to exactly reproduce the Wikipedia formula (it returns a horrible formula full of a1, a2, etc). Any idea?